Merge tag 'arm-dt-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 May 2022 17:28:12 +0000 (10:28 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 May 2022 17:28:12 +0000 (10:28 -0700)
Pull ARM DT updates from Arnd Bergmann:
 "There are 40 branches this time, adding a lot of new hardware support,
  and cleanups. Krzysztof Kozlowski continues his treewide cleanups.

  There are a number of new SoCs, all of them as part of existing
  families, and typically added along with a reference board:

   - Renesas RZ/G2UL (R9A07G043) is the single-core version of the
     RZ/G2L general-purpose MPU.

   - Renesas RZ/V2M (R9A09G011) is a smart camera SoC

   - Renesas R-Car V4H (R8A779G0) is an automotive chip with Cortex-A76
     cores and deep learning accerlation.

   - Broadcom BCM47622 is a new broadband SoC based on a quad Cortex-A7
     and dual Wifi-6.

   - Corstone1000 is a generic platform from Arm that is used for
     designing custom SoCs, the support for now is for the Fixed Virtual
     Platform emulation for it.

   - Mediatek MT8195 (Kompanio 1200) is a high-end consumer chip used in
     upcoming Chromebooks.

   - NXP i.MXRT1050 is a Cortex-M7 based microcontroller, the first
     MMU-less SoC to be added in a while

  New machines based on already supported SoCs this time are mainly for
  32-bit platforms and include:

   - Two wireless routers based on Broadcom bcm4708

   - 30 new boards based on NXP i.MX6, i.MX7 and i.MX8 families, mostly
     for the industrial embedded market, and on NXP LS1021A based IOT
     board.

   - Two ethernet switches based on Microchip LAN966

   - Eight Qualcomm Snapdragon based machines, including a smartwatch, a
     Chromebook board and some phones

   - Another phone based on the old ST-Ericsson Ux500 platform

   - Seven STM32MP1 based boards

   - Four single-board computers based on Rockchip RK3566/RK3568"

* tag 'arm-dt-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (791 commits)
  ARM: dts: kswitch-d10: enable networking
  ARM: dts: lan966x: add switch node
  ARM: dts: lan966x: add serdes node
  ARM: dts: lan966x: add reset switch reset node
  ARM: dts: lan966x: add MIIM nodes
  ARM: dts: lan966x: add hwmon node
  ARM: dts: lan966x: add basic Kontron KSwitch D10 support
  ARM: dts: lan966x: add flexcom I2C nodes
  ARM: dts: lan966x: add flexcom SPI nodes
  ARM: dts: lan966x: add all flexcom usart nodes
  ARM: dts: lan966x: add missing uart DMA channel
  ARM: dts: lan966x: add sgpio node
  ARM: dts: lan966x: swap dma channels for crypto node
  ARM: dts: lan966x: rename pinctrl nodes
  ARM: dts: at91: sama7g5: remove interrupt-parent from gic node
  ARM: dts: at91: use generic node name for dataflash
  ARM: dts: turris-omnia: Add atsha204a node
  arm64: dts: mt8192: Follow binding order for SCP registers
  arm64: dts: mediatek: add mtk-snfi for mt7622
  arm64: dts: mediatek: mt8195-demo: enable uart1
  ...

710 files changed:
Documentation/devicetree/bindings/arm/arm,corstone1000.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml
Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/arm/fsl.yaml
Documentation/devicetree/bindings/arm/mediatek.yaml
Documentation/devicetree/bindings/arm/mediatek/mediatek,pericfg.yaml
Documentation/devicetree/bindings/arm/omap/prcm.txt
Documentation/devicetree/bindings/arm/qcom.yaml
Documentation/devicetree/bindings/arm/renesas.yaml
Documentation/devicetree/bindings/arm/rockchip.yaml
Documentation/devicetree/bindings/arm/stm32/stm32.yaml
Documentation/devicetree/bindings/arm/sunxi.yaml
Documentation/devicetree/bindings/arm/syna.txt
Documentation/devicetree/bindings/arm/ux500.yaml
Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/clock/st,stm32mp1-rcc.yaml
Documentation/devicetree/bindings/clock/ti-clkctrl.txt
Documentation/devicetree/bindings/clock/ti/clockdomain.txt
Documentation/devicetree/bindings/clock/ti/composite.txt
Documentation/devicetree/bindings/clock/ti/fixed-factor-clock.txt
Documentation/devicetree/bindings/clock/ti/gate.txt
Documentation/devicetree/bindings/clock/ti/interface.txt
Documentation/devicetree/bindings/clock/ti/mux.txt
Documentation/devicetree/bindings/dma/fsl-imx-dma.txt
Documentation/devicetree/bindings/memory-controllers/nvidia,tegra186-mc.yaml
Documentation/devicetree/bindings/memory-controllers/renesas,rpc-if.yaml
Documentation/devicetree/bindings/net/wireless/silabs,wfx.yaml
Documentation/devicetree/bindings/power/renesas,rcar-sysc.yaml
Documentation/devicetree/bindings/reset/renesas,rst.yaml
Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/soc/renesas/renesas,rzg2l-sysc.yaml [moved from Documentation/devicetree/bindings/power/renesas,rzg2l-sysc.yaml with 87% similarity]
Documentation/devicetree/bindings/spi/allwinner,sun6i-a31-spi.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
Documentation/devicetree/bindings/watchdog/allwinner,sun4i-a10-wdt.yaml
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/am335x-baltos.dtsi
arch/arm/boot/dts/am335x-bone-common.dtsi
arch/arm/boot/dts/am335x-evm.dts
arch/arm/boot/dts/am335x-evmsk.dts
arch/arm/boot/dts/am335x-guardian.dts
arch/arm/boot/dts/am335x-moxa-uc-2100-common.dtsi
arch/arm/boot/dts/am335x-moxa-uc-8100-common.dtsi
arch/arm/boot/dts/am335x-myirtech-myc.dtsi
arch/arm/boot/dts/am335x-myirtech-myd.dts
arch/arm/boot/dts/am335x-phycore-som.dtsi
arch/arm/boot/dts/am335x-sl50.dts
arch/arm/boot/dts/am33xx-clocks.dtsi
arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/am35xx-clocks.dtsi
arch/arm/boot/dts/am3874-iceboard.dts
arch/arm/boot/dts/am437x-cm-t43.dts
arch/arm/boot/dts/am437x-gp-evm.dts
arch/arm/boot/dts/am437x-idk-evm.dts
arch/arm/boot/dts/am437x-sk-evm.dts
arch/arm/boot/dts/am43x-epos-evm.dts
arch/arm/boot/dts/am43xx-clocks.dtsi
arch/arm/boot/dts/am574x-idk.dts
arch/arm/boot/dts/am57xx-cl-som-am57x.dts
arch/arm/boot/dts/am57xx-idk-common.dtsi
arch/arm/boot/dts/armada-370-db.dts
arch/arm/boot/dts/armada-370-seagate-personal-cloud.dtsi
arch/arm/boot/dts/armada-370-synology-ds213j.dts
arch/arm/boot/dts/armada-375-db.dts
arch/arm/boot/dts/armada-381-netgear-gs110emx.dts
arch/arm/boot/dts/armada-385-atl-x530.dts
arch/arm/boot/dts/armada-385-clearfog-gtr.dtsi
arch/arm/boot/dts/armada-385-db-88f6820-amc.dts
arch/arm/boot/dts/armada-385-db-ap.dts
arch/arm/boot/dts/armada-385-synology-ds116.dts
arch/arm/boot/dts/armada-385-turris-omnia.dts
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-solidrun-microsom.dtsi
arch/arm/boot/dts/armada-390-db.dts
arch/arm/boot/dts/armada-398-db.dts
arch/arm/boot/dts/armada-xp-axpwifiap.dts
arch/arm/boot/dts/armada-xp-crs305-1g-4s-bit.dts
arch/arm/boot/dts/armada-xp-crs305-1g-4s.dtsi
arch/arm/boot/dts/armada-xp-crs326-24g-2s-bit.dts
arch/arm/boot/dts/armada-xp-crs326-24g-2s.dtsi
arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s-bit.dts
arch/arm/boot/dts/armada-xp-crs328-4c-20s-4s.dtsi
arch/arm/boot/dts/armada-xp-db-dxbc2.dts
arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts
arch/arm/boot/dts/armada-xp-db.dts
arch/arm/boot/dts/armada-xp-gp.dts
arch/arm/boot/dts/armada-xp-linksys-mamba.dts
arch/arm/boot/dts/armada-xp-synology-ds414.dts
arch/arm/boot/dts/bcm-cygnus.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-cm1-io1.dts
arch/arm/boot/dts/bcm2835-rpi-zero-w.dts
arch/arm/boot/dts/bcm2835-rpi-zero.dts
arch/arm/boot/dts/bcm2836-rpi-2-b.dts
arch/arm/boot/dts/bcm2837-rpi-3-a-plus.dts
arch/arm/boot/dts/bcm2837-rpi-3-b-plus.dts
arch/arm/boot/dts/bcm2837-rpi-3-b.dts
arch/arm/boot/dts/bcm2837-rpi-cm3-io3.dts
arch/arm/boot/dts/bcm2837-rpi-cm3.dtsi
arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi
arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm47094-asus-rt-ac88u.dts
arch/arm/boot/dts/bcm47622.dtsi [new file with mode: 0644]
arch/arm/boot/dts/bcm53016-meraki-mr32.dts
arch/arm/boot/dts/bcm5301x.dtsi
arch/arm/boot/dts/bcm53340-ubnt-unifi-switch8.dts
arch/arm/boot/dts/bcm947622.dts [new file with mode: 0644]
arch/arm/boot/dts/bcm953012er.dts
arch/arm/boot/dts/bcm953012hr.dts
arch/arm/boot/dts/bcm953012k.dts
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/bcm988312hr.dts
arch/arm/boot/dts/dm814x.dtsi
arch/arm/boot/dts/dm816x.dtsi
arch/arm/boot/dts/dove-cubox.dts
arch/arm/boot/dts/dove-d2plug.dts
arch/arm/boot/dts/dove-d3plug.dts
arch/arm/boot/dts/dove-dove-db.dts
arch/arm/boot/dts/dra7-evm-common.dtsi
arch/arm/boot/dts/dra72-evm-common.dtsi
arch/arm/boot/dts/dra76-evm.dts
arch/arm/boot/dts/dra7xx-clocks.dtsi
arch/arm/boot/dts/exynos3250.dtsi
arch/arm/boot/dts/exynos4.dtsi
arch/arm/boot/dts/exynos4210-universal_c210.dts
arch/arm/boot/dts/exynos4412-odroidu3.dts
arch/arm/boot/dts/exynos4412-odroidx.dts
arch/arm/boot/dts/exynos5250-smdk5250.dts
arch/arm/boot/dts/exynos5250.dtsi
arch/arm/boot/dts/exynos5260.dtsi
arch/arm/boot/dts/exynos5410-odroidxu.dts
arch/arm/boot/dts/exynos5410.dtsi
arch/arm/boot/dts/exynos5420.dtsi
arch/arm/boot/dts/exynos5422-odroid-core.dtsi
arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
arch/arm/boot/dts/exynos5422-odroidxu3.dts
arch/arm/boot/dts/exynos54xx.dtsi
arch/arm/boot/dts/imx27.dtsi
arch/arm/boot/dts/imx28-evk.dts
arch/arm/boot/dts/imx28-m28evk.dts
arch/arm/boot/dts/imx28-sps1.dts
arch/arm/boot/dts/imx51-digi-connectcore-jsk.dts
arch/arm/boot/dts/imx51-digi-connectcore-som.dtsi
arch/arm/boot/dts/imx51.dtsi
arch/arm/boot/dts/imx6dl-colibri-aster.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-colibri-eval-v3.dts
arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-colibri-iris.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts [deleted file]
arch/arm/boot/dts/imx6dl-eckelmann-ci4x10.dts
arch/arm/boot/dts/imx6dl-plybas.dts
arch/arm/boot/dts/imx6dl-rex-basic.dts
arch/arm/boot/dts/imx6dl-victgo.dts
arch/arm/boot/dts/imx6dl-vicut1.dts
arch/arm/boot/dts/imx6q-ba16.dtsi
arch/arm/boot/dts/imx6q-bosch-acc.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6q-bx50v3.dtsi
arch/arm/boot/dts/imx6q-cm-fx6.dts
arch/arm/boot/dts/imx6q-dmo-edmqmx6.dts
arch/arm/boot/dts/imx6q-dms-ba16.dts
arch/arm/boot/dts/imx6q-gw5400-a.dts
arch/arm/boot/dts/imx6q-marsboard.dts
arch/arm/boot/dts/imx6q-rex-pro.dts
arch/arm/boot/dts/imx6q-vicut1.dts
arch/arm/boot/dts/imx6qdl-aristainetos.dtsi
arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi
arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi [deleted file]
arch/arm/boot/dts/imx6qdl-colibri.dtsi
arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi
arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi
arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi
arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi
arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi
arch/arm/boot/dts/imx6qdl-sabreauto.dtsi
arch/arm/boot/dts/imx6qdl-sabrelite.dtsi
arch/arm/boot/dts/imx6qdl-sabresd.dtsi
arch/arm/boot/dts/imx6qdl-tx6.dtsi
arch/arm/boot/dts/imx6qdl-udoo.dtsi
arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6qdl-vicut1.dtsi
arch/arm/boot/dts/imx6qp-vicutp.dts
arch/arm/boot/dts/imx6sl-evk.dts
arch/arm/boot/dts/imx6sl.dtsi
arch/arm/boot/dts/imx6sx-nitrogen6sx.dts
arch/arm/boot/dts/imx6sx-sdb-reva.dts
arch/arm/boot/dts/imx6sx-sdb.dts
arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
arch/arm/boot/dts/imx6ul-kontron-n6310-som.dtsi
arch/arm/boot/dts/imx6ul-kontron-n6311-som.dtsi
arch/arm/boot/dts/imx6ul-kontron-n6x1x-s.dtsi
arch/arm/boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi
arch/arm/boot/dts/imx6ul-phytec-segin-peb-av-02.dtsi
arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-aster.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-aster.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-emmc-nonwifi.dtsi
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dts
arch/arm/boot/dts/imx6ull-colibri-eval-v3.dtsi
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-iris.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-iris.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-nonwifi.dtsi
arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-wifi-eval-v3.dts
arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-colibri-wifi.dtsi
arch/arm/boot/dts/imx6ull-colibri.dtsi
arch/arm/boot/dts/imx6ull-kontron-n6411-som.dtsi
arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts [new file with mode: 0644]
arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi [new file with mode: 0644]
arch/arm/boot/dts/imx7d-smegw01.dts [new file with mode: 0644]
arch/arm/boot/dts/imx7s.dtsi
arch/arm/boot/dts/imxrt1050-evk.dts [new file with mode: 0644]
arch/arm/boot/dts/imxrt1050.dtsi [new file with mode: 0644]
arch/arm/boot/dts/keystone-k2e-evm.dts
arch/arm/boot/dts/keystone-k2g-evm.dts
arch/arm/boot/dts/keystone-k2g-ice.dts
arch/arm/boot/dts/keystone-k2hk-evm.dts
arch/arm/boot/dts/keystone-k2l-evm.dts
arch/arm/boot/dts/kirkwood-dir665.dts
arch/arm/boot/dts/kirkwood-synology.dtsi
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts [new file with mode: 0644]
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dts [new file with mode: 0644]
arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi [new file with mode: 0644]
arch/arm/boot/dts/lan966x-pcb8291.dts
arch/arm/boot/dts/lan966x.dtsi
arch/arm/boot/dts/logicpd-som-lv.dtsi
arch/arm/boot/dts/ls1021a-iot.dts [new file with mode: 0644]
arch/arm/boot/dts/ls1021a.dtsi
arch/arm/boot/dts/mba6ulx.dtsi [new file with mode: 0644]
arch/arm/boot/dts/meson8-minix-neo-x8.dts
arch/arm/boot/dts/mt2701.dtsi
arch/arm/boot/dts/mt7623n.dtsi
arch/arm/boot/dts/nspire-classic.dtsi
arch/arm/boot/dts/nspire-cx.dts
arch/arm/boot/dts/nspire.dtsi
arch/arm/boot/dts/nuvoton-npcm730-gbs.dts
arch/arm/boot/dts/nuvoton-npcm730-gsj.dts
arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
arch/arm/boot/dts/nuvoton-npcm750-evb.dts
arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts
arch/arm/boot/dts/omap3-beagle-xm.dts
arch/arm/boot/dts/omap3430es1-clocks.dtsi
arch/arm/boot/dts/omap34xx-omap36xx-clocks.dtsi
arch/arm/boot/dts/omap36xx-am35xx-omap3430es2plus-clocks.dtsi
arch/arm/boot/dts/omap36xx-clocks.dtsi
arch/arm/boot/dts/omap36xx-omap3430es2plus-clocks.dtsi
arch/arm/boot/dts/omap3xxx-clocks.dtsi
arch/arm/boot/dts/omap4-panda-common.dtsi
arch/arm/boot/dts/omap443x-clocks.dtsi
arch/arm/boot/dts/omap446x-clocks.dtsi
arch/arm/boot/dts/omap44xx-clocks.dtsi
arch/arm/boot/dts/omap5-igep0050.dts
arch/arm/boot/dts/omap5-uevm.dts
arch/arm/boot/dts/omap54xx-clocks.dtsi
arch/arm/boot/dts/ox820.dtsi
arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-apq8064-sony-xperia-lagan-yuga.dts [moved from arch/arm/boot/dts/qcom-apq8064-sony-xperia-yuga.dts with 100% similarity]
arch/arm/boot/dts/qcom-apq8064.dtsi
arch/arm/boot/dts/qcom-apq8074-dragonboard.dts
arch/arm/boot/dts/qcom-apq8084.dtsi
arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1-c1.dts
arch/arm/boot/dts/qcom-ipq4019-ap.dk04.1.dtsi
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1-c1.dts
arch/arm/boot/dts/qcom-ipq4019-ap.dk07.1.dtsi
arch/arm/boot/dts/qcom-ipq4019.dtsi
arch/arm/boot/dts/qcom-ipq8064-v1.0.dtsi
arch/arm/boot/dts/qcom-ipq8064.dtsi
arch/arm/boot/dts/qcom-mdm9615.dtsi
arch/arm/boot/dts/qcom-msm8226.dtsi
arch/arm/boot/dts/qcom-msm8660.dtsi
arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts [deleted file]
arch/arm/boot/dts/qcom-msm8974-lge-nexus5-hammerhead.dts
arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts [deleted file]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts [deleted file]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts [deleted file]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts [deleted file]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-amami.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-honami.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974.dtsi
arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974pro-sony-xperia-shinano-castor.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom-msm8974pro.dtsi
arch/arm/boot/dts/qcom-pm8226.dtsi
arch/arm/boot/dts/qcom-pm8941.dtsi
arch/arm/boot/dts/qcom-pmx65.dtsi [new file with mode: 0644]
arch/arm/boot/dts/qcom-sdx55.dtsi
arch/arm/boot/dts/qcom-sdx65-mtp.dts
arch/arm/boot/dts/qcom-sdx65.dtsi
arch/arm/boot/dts/r8a7743.dtsi
arch/arm/boot/dts/r8a7744.dtsi
arch/arm/boot/dts/r8a7745.dtsi
arch/arm/boot/dts/r8a77470.dtsi
arch/arm/boot/dts/r8a7790.dtsi
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/r9a06g032.dtsi
arch/arm/boot/dts/rk3036.dtsi
arch/arm/boot/dts/rk3188-bqedison2qc.dts
arch/arm/boot/dts/rk322x.dtsi
arch/arm/boot/dts/s5pv210-aquila.dts
arch/arm/boot/dts/s5pv210-aries.dtsi
arch/arm/boot/dts/s5pv210-goni.dts
arch/arm/boot/dts/s5pv210.dtsi
arch/arm/boot/dts/sama7g5.dtsi
arch/arm/boot/dts/socfpga.dtsi
arch/arm/boot/dts/socfpga_arria10.dtsi
arch/arm/boot/dts/ste-dbx5x0.dtsi
arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts [new file with mode: 0644]
arch/arm/boot/dts/ste-ux500-samsung-codina.dts
arch/arm/boot/dts/ste-ux500-samsung-gavini.dts
arch/arm/boot/dts/ste-ux500-samsung-golden.dts
arch/arm/boot/dts/ste-ux500-samsung-janice.dts
arch/arm/boot/dts/ste-ux500-samsung-kyle.dts
arch/arm/boot/dts/ste-ux500-samsung-skomer.dts
arch/arm/boot/dts/stm32f4-pinctrl.dtsi
arch/arm/boot/dts/stm32f7-pinctrl.dtsi
arch/arm/boot/dts/stm32h743.dtsi
arch/arm/boot/dts/stm32mp131.dtsi
arch/arm/boot/dts/stm32mp135f-dk.dts
arch/arm/boot/dts/stm32mp15-pinctrl.dtsi
arch/arm/boot/dts/stm32mp151.dtsi
arch/arm/boot/dts/stm32mp151a-prtt1a.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp151a-prtt1c.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi [new file with mode: 0644]
arch/arm/boot/dts/stm32mp151a-prtt1s.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts [new file with mode: 0644]
arch/arm/boot/dts/stm32mp15xx-dhcom-som.dtsi
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi
arch/arm/boot/dts/sun8i-h3-nanopi.dtsi
arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
arch/arm/boot/dts/suniv-f1c100s.dtsi
arch/arm/boot/dts/zynq-7000.dtsi
arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
arch/arm64/boot/dts/amlogic/Makefile
arch/arm64/boot/dts/amlogic/meson-axg-jethome-jethub-j100.dts
arch/arm64/boot/dts/amlogic/meson-gx-libretech-pc.dtsi
arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts
arch/arm64/boot/dts/amlogic/meson-gxl-s905w-jethome-jethub-j80.dts
arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc-v2.dts
arch/arm64/boot/dts/amlogic/meson-gxm-khadas-vim2.dts
arch/arm64/boot/dts/amlogic/meson-khadas-vim3.dtsi
arch/arm64/boot/dts/amlogic/meson-s4.dtsi
arch/arm64/boot/dts/amlogic/meson-sm1-odroid-hc4.dts
arch/arm64/boot/dts/arm/Makefile
arch/arm64/boot/dts/arm/corstone1000-fvp.dts [new file with mode: 0644]
arch/arm64/boot/dts/arm/corstone1000-mps3.dts [new file with mode: 0644]
arch/arm64/boot/dts/arm/corstone1000.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/arm/foundation-v8.dtsi
arch/arm64/boot/dts/arm/fvp-base-revc.dts
arch/arm64/boot/dts/arm/juno-base.dtsi
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
arch/arm64/boot/dts/arm/juno-r1-scmi.dts
arch/arm64/boot/dts/arm/juno-r1.dts
arch/arm64/boot/dts/arm/juno-r2-scmi.dts
arch/arm64/boot/dts/arm/juno-r2.dts
arch/arm64/boot/dts/arm/juno-scmi.dtsi
arch/arm64/boot/dts/arm/juno.dts
arch/arm64/boot/dts/arm/rtsm_ve-motherboard-rs2.dtsi
arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi
arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts
arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts
arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi
arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts
arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi
arch/arm64/boot/dts/exynos/exynos5433.dtsi
arch/arm64/boot/dts/exynos/exynos7.dtsi
arch/arm64/boot/dts/exynos/exynos850-e850-96.dts
arch/arm64/boot/dts/exynos/exynos850.dtsi
arch/arm64/boot/dts/exynos/exynosautov9-sadk.dts
arch/arm64/boot/dts/exynos/exynosautov9.dtsi
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-qds.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-rdb.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls208xa-qds.dtsi
arch/arm64/boot/dts/freescale/fsl-ls208xa-rdb.dtsi
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-beacon-baseboard.dtsi
arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-emcon.dtsi
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts
arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi
arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi
arch/arm64/boot/dts/freescale/imx8mm-venice-gw72xx.dtsi
arch/arm64/boot/dts/freescale/imx8mm-venice-gw73xx.dtsi
arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts
arch/arm64/boot/dts/freescale/imx8mm-venice-gw7902.dts
arch/arm64/boot/dts/freescale/imx8mm-venice-gw7903.dts
arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi
arch/arm64/boot/dts/freescale/imx8mm-verdin-wifi.dtsi
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
arch/arm64/boot/dts/freescale/imx8mm.dtsi
arch/arm64/boot/dts/freescale/imx8mn-beacon-baseboard.dtsi
arch/arm64/boot/dts/freescale/imx8mn-bsh-smm-s2pro.dts
arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mn-evk.dts
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
arch/arm64/boot/dts/freescale/imx8mn-venice-gw7902.dts
arch/arm64/boot/dts/freescale/imx8mn.dtsi
arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp.dtsi
arch/arm64/boot/dts/freescale/imx8mq-kontron-pitx-imx8m.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5-r4.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi
arch/arm64/boot/dts/freescale/imx8mq-mnt-reform2.dts
arch/arm64/boot/dts/freescale/imx8mq.dtsi
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
arch/arm64/boot/dts/freescale/imx8qxp.dtsi
arch/arm64/boot/dts/hisilicon/hi3660.dtsi
arch/arm64/boot/dts/hisilicon/hi3670.dtsi
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
arch/arm64/boot/dts/marvell/armada-3720-db.dts
arch/arm64/boot/dts/marvell/armada-3720-espressobin-ultra.dts
arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts
arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
arch/arm64/boot/dts/marvell/armada-37xx.dtsi
arch/arm64/boot/dts/marvell/armada-7040-db.dts
arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts
arch/arm64/boot/dts/marvell/armada-8040-clearfog-gt-8k.dts
arch/arm64/boot/dts/marvell/armada-8040-db.dts
arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi
arch/arm64/boot/dts/marvell/armada-8040-puzzle-m801.dts
arch/arm64/boot/dts/marvell/armada-ap80x.dtsi
arch/arm64/boot/dts/marvell/armada-cp11x.dtsi
arch/arm64/boot/dts/marvell/cn9130-crb.dtsi
arch/arm64/boot/dts/marvell/cn9130-db.dtsi
arch/arm64/boot/dts/marvell/cn9131-db.dtsi
arch/arm64/boot/dts/mediatek/Makefile
arch/arm64/boot/dts/mediatek/mt2712e.dtsi
arch/arm64/boot/dts/mediatek/mt6359.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt7622.dtsi
arch/arm64/boot/dts/mediatek/mt8167.dtsi
arch/arm64/boot/dts/mediatek/mt8173.dtsi
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi.dtsi
arch/arm64/boot/dts/mediatek/mt8183-kukui.dtsi
arch/arm64/boot/dts/mediatek/mt8183-pumpkin.dts
arch/arm64/boot/dts/mediatek/mt8183.dtsi
arch/arm64/boot/dts/mediatek/mt8192-evb.dts
arch/arm64/boot/dts/mediatek/mt8192.dtsi
arch/arm64/boot/dts/mediatek/mt8195-demo.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8195-evb.dts [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/mt8195.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi
arch/arm64/boot/dts/microchip/sparx5_nand.dtsi
arch/arm64/boot/dts/microchip/sparx5_pcb125.dts
arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi
arch/arm64/boot/dts/microchip/sparx5_pcb135_board.dtsi
arch/arm64/boot/dts/nvidia/tegra186-p2771-0000.dts
arch/arm64/boot/dts/nvidia/tegra186-p3509-0000+p3636-0001.dts
arch/arm64/boot/dts/nvidia/tegra186.dtsi
arch/arm64/boot/dts/nvidia/tegra194-p2972-0000.dts
arch/arm64/boot/dts/nvidia/tegra194-p3509-0000.dtsi
arch/arm64/boot/dts/nvidia/tegra194.dtsi
arch/arm64/boot/dts/nvidia/tegra210-p3450-0000.dts
arch/arm64/boot/dts/nvidia/tegra210.dtsi
arch/arm64/boot/dts/nvidia/tegra234-p3701-0000.dtsi
arch/arm64/boot/dts/nvidia/tegra234-p3737-0000+p3701-0000.dts
arch/arm64/boot/dts/nvidia/tegra234.dtsi
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/apq8096-db820c.dts
arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts
arch/arm64/boot/dts/qcom/ipq6018.dtsi
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
arch/arm64/boot/dts/qcom/ipq8074.dtsi
arch/arm64/boot/dts/qcom/msm8916-huawei-g7.dts
arch/arm64/boot/dts/qcom/msm8916.dtsi
arch/arm64/boot/dts/qcom/msm8953.dtsi
arch/arm64/boot/dts/qcom/msm8992-xiaomi-libra.dts
arch/arm64/boot/dts/qcom/msm8992.dtsi
arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts
arch/arm64/boot/dts/qcom/msm8994-sony-xperia-kitakami.dtsi
arch/arm64/boot/dts/qcom/msm8994.dtsi
arch/arm64/boot/dts/qcom/msm8996-mtp.dts
arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi
arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi
arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dts
arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dts
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/msm8998-oneplus-common.dtsi
arch/arm64/boot/dts/qcom/msm8998.dtsi
arch/arm64/boot/dts/qcom/pm8350.dtsi
arch/arm64/boot/dts/qcom/pm8350b.dtsi
arch/arm64/boot/dts/qcom/pm8350c.dtsi
arch/arm64/boot/dts/qcom/pm8450.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/pmr735a.dtsi
arch/arm64/boot/dts/qcom/pmr735b.dtsi
arch/arm64/boot/dts/qcom/qcs404.dtsi
arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
arch/arm64/boot/dts/qcom/sa8155p-adp.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r2.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r3.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar-r4.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r5.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-nots-r9.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r4.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-limozeen-r9.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r0.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1-lte.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r1.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-kb.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3-lte.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r3.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-kb.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9-lte.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor-r9.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-pompom.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor-r1.dts
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts [moved from arch/arm64/boot/dts/qcom/sc7280-crd.dts with 88% similarity]
arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts [deleted file]
arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r1.dts
arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi
arch/arm64/boot/dts/qcom/sc7280-idp.dts
arch/arm64/boot/dts/qcom/sc7280-idp.dtsi
arch/arm64/boot/dts/qcom/sc7280-idp2.dts
arch/arm64/boot/dts/qcom/sc7280-qcard.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi
arch/arm64/boot/dts/qcom/sdm630.dtsi
arch/arm64/boot/dts/qcom/sdm660.dtsi
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/sm6350.dtsi
arch/arm64/boot/dts/qcom/sm7225-fairphone-fp4.dts
arch/arm64/boot/dts/qcom/sm8150.dtsi
arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi
arch/arm64/boot/dts/qcom/sm8250.dtsi
arch/arm64/boot/dts/qcom/sm8350-hdk.dts
arch/arm64/boot/dts/qcom/sm8350-microsoft-surface-duo2.dts
arch/arm64/boot/dts/qcom/sm8350.dtsi
arch/arm64/boot/dts/qcom/sm8450-hdk.dts
arch/arm64/boot/dts/qcom/sm8450-qrd.dts
arch/arm64/boot/dts/qcom/sm8450.dtsi
arch/arm64/boot/dts/renesas/Makefile
arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi
arch/arm64/boot/dts/renesas/draak.dtsi
arch/arm64/boot/dts/renesas/ebisu.dtsi
arch/arm64/boot/dts/renesas/r8a774a1.dtsi
arch/arm64/boot/dts/renesas/r8a774b1.dtsi
arch/arm64/boot/dts/renesas/r8a774c0-cat874.dts
arch/arm64/boot/dts/renesas/r8a774c0.dtsi
arch/arm64/boot/dts/renesas/r8a774e1.dtsi
arch/arm64/boot/dts/renesas/r8a77951.dtsi
arch/arm64/boot/dts/renesas/r8a77960.dtsi
arch/arm64/boot/dts/renesas/r8a77961.dtsi
arch/arm64/boot/dts/renesas/r8a77965.dtsi
arch/arm64/boot/dts/renesas/r8a77970.dtsi
arch/arm64/boot/dts/renesas/r8a77980.dtsi
arch/arm64/boot/dts/renesas/r8a77990.dtsi
arch/arm64/boot/dts/renesas/r8a77995.dtsi
arch/arm64/boot/dts/renesas/r8a779a0-falcon-cpu.dtsi
arch/arm64/boot/dts/renesas/r8a779a0-falcon.dts
arch/arm64/boot/dts/renesas/r8a779a0.dtsi
arch/arm64/boot/dts/renesas/r8a779f0-spider-cpu.dtsi
arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a779f0-spider.dts
arch/arm64/boot/dts/renesas/r8a779f0.dtsi
arch/arm64/boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a779g0.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r9a07g043.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r9a07g044.dtsi
arch/arm64/boot/dts/renesas/r9a07g044c2-smarc.dts
arch/arm64/boot/dts/renesas/r9a07g054.dtsi
arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts
arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r9a09g011.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/rz-smarc-common.dtsi
arch/arm64/boot/dts/renesas/rzg2l-smarc.dtsi
arch/arm64/boot/dts/renesas/rzg2lc-smarc-pinfunction.dtsi
arch/arm64/boot/dts/renesas/rzg2lc-smarc-som.dtsi
arch/arm64/boot/dts/renesas/rzg2lc-smarc.dtsi
arch/arm64/boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/renesas/salvator-common.dtsi
arch/arm64/boot/dts/renesas/ulcb-kf.dtsi
arch/arm64/boot/dts/renesas/ulcb.dtsi
arch/arm64/boot/dts/rockchip/Makefile
arch/arm64/boot/dts/rockchip/rk3328.dtsi
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi
arch/arm64/boot/dts/rockchip/rk3399-gru-scarlet.dtsi
arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi
arch/arm64/boot/dts/rockchip/rk3399-hugsun-x99.dts
arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi
arch/arm64/boot/dts/rockchip/rk3399-leez-p710.dts
arch/arm64/boot/dts/rockchip/rk3399-nanopi4.dtsi
arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4b.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4c.dts
arch/arm64/boot/dts/rockchip/rk3399-rock960.dtsi
arch/arm64/boot/dts/rockchip/rk3399.dtsi
arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3566.dtsi
arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts
arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3568.dtsi
arch/arm64/boot/dts/rockchip/rk356x.dtsi
arch/arm64/boot/dts/synaptics/as370.dtsi [deleted file]
arch/arm64/boot/dts/tesla/fsd.dtsi
arch/arm64/boot/dts/ti/k3-am62-main.dtsi
arch/arm64/boot/dts/ti/k3-am62-mcu.dtsi
arch/arm64/boot/dts/ti/k3-am62.dtsi
arch/arm64/boot/dts/ti/k3-am625-sk.dts
arch/arm64/boot/dts/ti/k3-am64-mcu.dtsi
arch/arm64/boot/dts/ti/k3-am642-sk.dts
arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
arch/arm64/boot/dts/ti/k3-j721e-sk.dts
arch/arm64/boot/dts/toshiba/tmpv7708-rm-mbrc.dts
arch/arm64/boot/dts/toshiba/tmpv7708-visrobo-vrb.dts
arch/arm64/boot/dts/toshiba/tmpv7708-visrobo-vrc.dtsi
arch/arm64/boot/dts/toshiba/tmpv7708.dtsi
include/dt-bindings/clock/qcom,gcc-msm8998.h
include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h [new file with mode: 0644]
include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h [new file with mode: 0644]
include/dt-bindings/clock/r8a779g0-cpg-mssr.h [new file with mode: 0644]
include/dt-bindings/clock/r9a07g043-cpg.h [new file with mode: 0644]
include/dt-bindings/clock/r9a09g011-cpg.h [new file with mode: 0644]
include/dt-bindings/clock/samsung,exynosautov9.h [new file with mode: 0644]
include/dt-bindings/clock/stm32mp1-clks.h
include/dt-bindings/clock/tegra234-clock.h
include/dt-bindings/power/imx8mp-power.h
include/dt-bindings/power/r8a779g0-sysc.h [new file with mode: 0644]
include/dt-bindings/reset/mt8192-resets.h
include/dt-bindings/reset/stm32mp1-resets.h
include/dt-bindings/reset/tegra234-reset.h

diff --git a/Documentation/devicetree/bindings/arm/arm,corstone1000.yaml b/Documentation/devicetree/bindings/arm/arm,corstone1000.yaml
new file mode 100644 (file)
index 0000000..a77f882
--- /dev/null
@@ -0,0 +1,45 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/arm,corstone1000.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ARM Corstone1000 Device Tree Bindings
+
+maintainers:
+  - Vishnu Banavath <vishnu.banavath@arm.com>
+  - Rui Miguel Silva <rui.silva@linaro.org>
+
+description: |+
+  ARM's Corstone1000 includes pre-verified Corstone SSE-710 subsystem that
+  provides a flexible compute architecture that combines Cortex‑A and Cortex‑M
+  processors.
+
+  Support for Cortex‑A32, Cortex‑A35 and Cortex‑A53 processors. Two expansion
+  systems for M-Class (or other) processors for adding sensors, connectivity,
+  video, audio and machine learning at the edge System and security IPs to build
+  a secure SoC for a range of rich IoT applications, for example gateways, smart
+  cameras and embedded systems.
+
+  Integrated Secure Enclave providing hardware Root of Trust and supporting
+  seamless integration of the optional CryptoCellâ„¢-312 cryptographic
+  accelerator.
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: Corstone1000 MPS3 it has 1 Cortex-A35 CPU core in a FPGA
+          implementation of the Corstone1000 in the MPS3 prototyping board. See
+          ARM document DAI0550.
+        items:
+          - const: arm,corstone1000-mps3
+      - description: Corstone1000 FVP is the Fixed Virtual Platform
+          implementation of this system. See ARM ecosystems FVP's.
+        items:
+          - const: arm,corstone1000-fvp
+
+additionalProperties: true
+
+...
index 434d3c6..8b7e87f 100644 (file)
@@ -64,6 +64,7 @@ properties:
       - description: BCM47094 based boards
         items:
           - enum:
+              - asus,rt-ac88u
               - dlink,dir-885l
               - linksys,panamera
               - luxul,abr-4500-v1
@@ -83,9 +84,14 @@ properties:
               - brcm,bcm953012er
               - brcm,bcm953012hr
               - brcm,bcm953012k
+          - const: brcm,bcm53012
+          - const: brcm,bcm4708
+
+      - description: BCM53016 based boards
+        items:
+          - enum:
               - meraki,mr32
-          - const: brcm,brcm53012
-          - const: brcm,brcm53016
+          - const: brcm,bcm53016
           - const: brcm,bcm4708
 
 additionalProperties: true
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml b/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
new file mode 100644 (file)
index 0000000..5fb4558
--- /dev/null
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/arm/bcm/brcm,bcmbca.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom Broadband SoC device tree bindings
+
+description:
+  Broadcom Broadband SoCs include family of high performance DSL/PON/Wireless
+  chips that can be used as home gateway, router and WLAN AP for residential,
+  enterprise and carrier applications.
+
+maintainers:
+  - William Zhang <william.zhang@broadcom.com>
+  - Anand Gore <anand.gore@broadcom.com>
+  - Kursad Oney <kursad.oney@broadcom.com>
+
+properties:
+  $nodename:
+    const: '/'
+  compatible:
+    oneOf:
+      - description: BCM47622 based boards
+        items:
+          - enum:
+              - brcm,bcm947622
+          - const: brcm,bcm47622
+          - const: brcm,bcmbca
+
+additionalProperties: true
+
+...
index 08bdd30..ef52437 100644 (file)
@@ -172,7 +172,7 @@ properties:
               - karo,tx53                     # Ka-Ro electronics TX53 module
               - kiebackpeter,imx53-ddc        # K+P imx53 DDC
               - kiebackpeter,imx53-hsc        # K+P imx53 HSC
-              - menlo,m53menlo
+              - menlo,m53menlo                # i.MX53 Menlo board
               - voipac,imx53-dmm-668          # Voipac i.MX53 X53-DMM-668
           - const: fsl,imx53
 
@@ -192,6 +192,7 @@ properties:
         items:
           - enum:
               - auvidea,h100              # Auvidea H100
+              - bosch,imx6q-acc           # Bosch ACC i.MX6 Dual
               - boundary,imx6q-nitrogen6_max
               - boundary,imx6q-nitrogen6_som2
               - boundary,imx6q-nitrogen6x
@@ -411,7 +412,6 @@ properties:
               - technologic,imx6dl-ts4900
               - technologic,imx6dl-ts7970
               - toradex,colibri_imx6dl      # Colibri iMX6 Modules
-              - toradex,colibri_imx6dl-v1_1 # Colibri iMX6 V1.1 Modules
               - udoo,imx6dl-udoo          # Udoo i.MX6 Dual-lite Board
               - vdl,lanmcu                # Van der Laan LANMCU board
               - wand,imx6dl-wandboard     # Wandboard i.MX6 Dual Lite Board
@@ -488,17 +488,13 @@ properties:
       - description: i.MX6DL Boards with Toradex Colibri iMX6DL/S Modules
         items:
           - enum:
+              - toradex,colibri_imx6dl-aster        # Colibri iMX6DL/S Module on Aster Board
               - toradex,colibri_imx6dl-eval-v3      # Colibri iMX6DL/S Module on Colibri Evaluation Board V3
+              - toradex,colibri_imx6dl-iris         # Colibri iMX6DL/S Module on Iris Board
+              - toradex,colibri_imx6dl-iris-v2      # Colibri iMX6DL/S Module on Iris Board V2
           - const: toradex,colibri_imx6dl           # Colibri iMX6DL/S Module
           - const: fsl,imx6dl
 
-      - description: i.MX6DL Boards with Toradex Colibri iMX6DL/S V1.1 Modules
-        items:
-          - enum:
-              - toradex,colibri_imx6dl-v1_1-eval-v3 # Colibri iMX6DL/S V1.1 M. on Colibri Evaluation Board V3
-          - const: toradex,colibri_imx6dl-v1_1      # Colibri iMX6DL/S V1.1 Module
-          - const: fsl,imx6dl
-
       - description: i.MX6S DHCOM DRC02 Board
         items:
           - const: dh,imx6s-dhcom-drc02
@@ -613,6 +609,28 @@ properties:
           - const: kontron,imx6ul-n6310-som
           - const: fsl,imx6ul
 
+      - description: TQ-Systems TQMa6UL1 SoM on MBa6ULx board
+        items:
+          - enum:
+              - tq,imx6ul-tqma6ul1-mba6ulx
+          - const: tq,imx6ul-tqma6ul1      # MCIMX6G1
+          - const: fsl,imx6ul
+
+      - description: TQ-Systems TQMa6UL2 SoM on MBa6ULx board
+        items:
+          - enum:
+              - tq,imx6ul-tqma6ul2-mba6ulx
+          - const: tq,imx6ul-tqma6ul2      # MCIMX6G2
+          - const: fsl,imx6ul
+
+      - description: TQ-Systems TQMa6ULxL SoM on MBa6ULx[L] board
+        items:
+          - enum:
+              - tq,imx6ul-tqma6ul2l-mba6ulx # using LGA adapter
+              - tq,imx6ul-tqma6ul2l-mba6ulxl
+          - const: tq,imx6ul-tqma6ul2l      # MCIMX6G2, LGA SoM variant
+          - const: fsl,imx6ul
+
       - description: i.MX6ULL based Boards
         items:
           - enum:
@@ -640,26 +658,44 @@ properties:
           - const: phytec,imx6ull-pcl063  # PHYTEC phyCORE-i.MX 6ULL
           - const: fsl,imx6ull
 
+      - description: i.MX6ULL PHYTEC phyGATE-Tauri
+        items:
+          - enum:
+              - phytec,imx6ull-phygate-tauri-emmc
+              - phytec,imx6ull-phygate-tauri-nand
+          - const: phytec,imx6ull-phygate-tauri # PHYTEC phyGATE-Tauri with i.MX6 ULL
+          - const: phytec,imx6ull-pcl063        # PHYTEC phyCORE-i.MX 6ULL
+          - const: fsl,imx6ull
+
       - description: i.MX6ULL Boards with Toradex Colibri iMX6ULL Modules
         items:
           - enum:
-              - toradex,colibri-imx6ull-eval      # Colibri iMX6ULL Module on Colibri Evaluation Board
+              - toradex,colibri-imx6ull-aster     # Colibri iMX6ULL Module on Aster Carrier Board
+              - toradex,colibri-imx6ull-eval      # Colibri iMX6ULL Module on Colibri Evaluation Board V3
+              - toradex,colibri-imx6ull-iris      # Colibri iMX6ULL Module on Iris Carrier Board
+              - toradex,colibri-imx6ull-iris-v2   # Colibri iMX6ULL Module on Iris V2 Carrier Board
           - const: toradex,colibri-imx6ull        # Colibri iMX6ULL Module
-          - const: fsl,imx6dl
+          - const: fsl,imx6ull
 
       - description: i.MX6ULL Boards with Toradex Colibri iMX6ULL 1GB (eMMC) Module
         items:
           - enum:
-              - toradex,colibri-imx6ull-emmc-eval # Colibri iMX6ULL 1GB (eMMC) M. on Colibri Evaluation Board
-          - const: toradex,colibri-imx6ull-emmc   # Colibri iMX6ULL 1GB (eMMC) Module
-          - const: fsl,imx6dl
+              - toradex,colibri-imx6ull-emmc-aster     # Colibri iMX6ULL 1G (eMMC) on Aster Carrier Board
+              - toradex,colibri-imx6ull-emmc-eval      # Colibri iMX6ULL 1G (eMMC) on Colibri Evaluation B. V3
+              - toradex,colibri-imx6ull-emmc-iris      # Colibri iMX6ULL 1G (eMMC) on Iris Carrier Board
+              - toradex,colibri-imx6ull-emmc-iris-v2   # Colibri iMX6ULL 1G (eMMC) on Iris V2 Carrier Board
+          - const: toradex,colibri-imx6ull-emmc        # Colibri iMX6ULL 1GB (eMMC) Module
+          - const: fsl,imx6ull
 
       - description: i.MX6ULL Boards with Toradex Colibri iMX6ULL Wi-Fi / BT Modules
         items:
           - enum:
-              - toradex,colibri-imx6ull-wifi-eval # Colibri iMX6ULL Wi-Fi / BT M. on Colibri Evaluation Board
-          - const: toradex,colibri-imx6ull-wifi   # Colibri iMX6ULL Wi-Fi / BT Module
-          - const: fsl,imx6dl
+              - toradex,colibri-imx6ull-wifi-eval     # Colibri iMX6ULL Wi-Fi / BT M. on Colibri Eval. B. V3
+              - toradex,colibri-imx6ull-wifi-aster    # Colibri iMX6ULL Wi-Fi / BT M. on Aster Carrier Board
+              - toradex,colibri-imx6ull-wifi-iris     # Colibri iMX6ULL Wi-Fi / BT M. on Iris Carrier Board
+              - toradex,colibri-imx6ull-wifi-iris-v2  # Colibri iMX6ULL Wi-Fi / BT M. on Iris V2 Carrier Board
+          - const: toradex,colibri-imx6ull-wifi       # Colibri iMX6ULL Wi-Fi / BT Module
+          - const: fsl,imx6ull
 
       - description: Kontron N6411 S Board
         items:
@@ -667,6 +703,21 @@ properties:
           - const: kontron,imx6ull-n6411-som
           - const: fsl,imx6ull
 
+      - description: TQ Systems TQMa6ULLx SoM on MBa6ULx board
+        items:
+          - enum:
+              - tq,imx6ull-tqma6ull2-mba6ulx
+          - const: tq,imx6ull-tqma6ull2      # MCIMX6Y2
+          - const: fsl,imx6ull
+
+      - description: TQ Systems TQMa6ULLxL SoM on MBa6ULx[L] board
+        items:
+          - enum:
+              - tq,imx6ull-tqma6ull2l-mba6ulx # using LGA adapter
+              - tq,imx6ull-tqma6ull2l-mba6ulxl
+          - const: tq,imx6ull-tqma6ull2l      # MCIMX6Y2, LGA SoM variant
+          - const: fsl,imx6ull
+
       - description: i.MX6ULZ based Boards
         items:
           - enum:
@@ -707,6 +758,7 @@ properties:
               - kam,imx7d-flex-concentrator-mfg   # Kamstrup OMNIA Flex Concentrator in manufacturing mode
               - novtech,imx7d-meerkat96   # i.MX7 Meerkat96 Board
               - remarkable,imx7d-remarkable2  # i.MX7D ReMarkable 2 E-Ink Tablet
+              - storopack,imx7d-smegw01       # Storopack i.MX7D SMEGW01
               - technexion,imx7d-pico-dwarf   # TechNexion i.MX7D Pico-Dwarf
               - technexion,imx7d-pico-hobbit  # TechNexion i.MX7D Pico-Hobbit
               - technexion,imx7d-pico-nymph   # TechNexion i.MX7D Pico-Nymph
@@ -762,6 +814,7 @@ properties:
           - enum:
               - beacon,imx8mm-beacon-kit  # i.MX8MM Beacon Development Kit
               - boundary,imx8mm-nitrogen8mm  # i.MX8MM Nitrogen Board
+              - dmo,imx8mm-data-modul-edm-sbc # i.MX8MM eDM SBC
               - emtrion,emcon-mx8mm-avari # emCON-MX8MM SoM on Avari Base
               - fsl,imx8mm-ddr4-evk       # i.MX8MM DDR4 EVK Board
               - fsl,imx8mm-evk            # i.MX8MM EVK Board
@@ -772,6 +825,7 @@ properties:
               - gw,imx8mm-gw7902          # i.MX8MM Gateworks Board
               - gw,imx8mm-gw7903          # i.MX8MM Gateworks Board
               - kontron,imx8mm-n801x-som  # i.MX8MM Kontron SL (N801X) SOM
+              - menlo,mx8menlo            # i.MX8MM Menlo board with Verdin SoM
               - toradex,verdin-imx8mm     # Verdin iMX8M Mini Modules
               - toradex,verdin-imx8mm-nonwifi  # Verdin iMX8M Mini Modules without Wi-Fi / BT
               - toradex,verdin-imx8mm-wifi  # Verdin iMX8M Mini Wi-Fi / BT Modules
@@ -834,6 +888,7 @@ properties:
               - beacon,imx8mn-beacon-kit  # i.MX8MN Beacon Development Kit
               - bsh,imx8mn-bsh-smm-s2     # i.MX8MN BSH SystemMaster S2
               - bsh,imx8mn-bsh-smm-s2pro  # i.MX8MN BSH SystemMaster S2 PRO
+              - fsl,imx8mn-ddr3l-evk      # i.MX8MN DDR3L EVK Board
               - fsl,imx8mn-ddr4-evk       # i.MX8MN DDR4 EVK Board
               - fsl,imx8mn-evk            # i.MX8MN LPDDR4 EVK Board
               - gw,imx8mn-gw7902          # i.MX8MM Gateworks Board
@@ -860,6 +915,17 @@ properties:
         items:
           - enum:
               - fsl,imx8mp-evk            # i.MX8MP EVK Board
+              - gateworks,imx8mp-gw74xx   # i.MX8MP Gateworks Board
+              - toradex,verdin-imx8mp     # Verdin iMX8M Plus Modules
+              - toradex,verdin-imx8mp-nonwifi  # Verdin iMX8M Plus Modules without Wi-Fi / BT
+              - toradex,verdin-imx8mp-wifi  # Verdin iMX8M Plus Wi-Fi / BT Modules
+          - const: fsl,imx8mp
+
+      - description: Engicam i.Core MX8M Plus SoM based boards
+        items:
+          - enum:
+              - engicam,icore-mx8mp-edimm2.2       # i.MX8MP Engicam i.Core MX8M Plus EDIMM2.2 Starter Kit
+          - const: engicam,icore-mx8mp             # i.MX8MP Engicam i.Core MX8M Plus SoM
           - const: fsl,imx8mp
 
       - description: PHYTEC phyCORE-i.MX8MP SoM based boards
@@ -868,6 +934,24 @@ properties:
           - const: phytec,imx8mp-phycore-som         # phyCORE-i.MX8MP SoM
           - const: fsl,imx8mp
 
+      - description: Toradex Boards with Verdin iMX8M Plus Modules
+        items:
+          - enum:
+              - toradex,verdin-imx8mp-nonwifi-dahlia # Verdin iMX8M Plus Module on Dahlia
+              - toradex,verdin-imx8mp-nonwifi-dev    # Verdin iMX8M Plus Module on Verdin Development Board
+          - const: toradex,verdin-imx8mp-nonwifi     # Verdin iMX8M Plus Module without Wi-Fi / BT
+          - const: toradex,verdin-imx8mp             # Verdin iMX8M Plus Module
+          - const: fsl,imx8mp
+
+      - description: Toradex Boards with Verdin iMX8M Plus Wi-Fi / BT Modules
+        items:
+          - enum:
+              - toradex,verdin-imx8mp-wifi-dahlia # Verdin iMX8M Plus Wi-Fi / BT Module on Dahlia
+              - toradex,verdin-imx8mp-wifi-dev    # Verdin iMX8M Plus Wi-Fi / BT M. on Verdin Development B.
+          - const: toradex,verdin-imx8mp-wifi     # Verdin iMX8M Plus Wi-Fi / BT Module
+          - const: toradex,verdin-imx8mp          # Verdin iMX8M Plus Module
+          - const: fsl,imx8mp
+
       - description: i.MX8MQ based Boards
         items:
           - enum:
@@ -999,6 +1083,7 @@ properties:
       - description: LS1021A based Boards
         items:
           - enum:
+              - fsl,ls1021a-iot
               - fsl,ls1021a-moxa-uc-8410a
               - fsl,ls1021a-qds
               - fsl,ls1021a-tsn
index ab0593c..4a2bd97 100644 (file)
@@ -133,6 +133,11 @@ properties:
           - const: mediatek,mt8183
       - items:
           - enum:
+              - mediatek,mt8192-evb
+          - const: mediatek,mt8192
+      - items:
+          - enum:
+              - mediatek,mt8195-demo
               - mediatek,mt8195-evb
           - const: mediatek,mt8195
       - description: Google Burnet (HP Chromebook x360 11MK G3 EE)
index 8723dfe..611f666 100644 (file)
@@ -26,6 +26,7 @@ properties:
               - mediatek,mt8135-pericfg
               - mediatek,mt8173-pericfg
               - mediatek,mt8183-pericfg
+              - mediatek,mt8195-pericfg
               - mediatek,mt8516-pericfg
           - const: syscon
       - items:
index 3eb6d7a..431ef8c 100644 (file)
@@ -31,12 +31,17 @@ Required properties:
                (base address and length)
 - clocks:      clocks for this module
 - clockdomains:        clockdomains for this module
+- #clock-cells: From common clock binding
+- clock-output-names: From common clock binding
+
 
 Example:
 
-cm: cm@48004000 {
+cm: clock@48004000 {
        compatible = "ti,omap3-cm";
        reg = <0x48004000 0x4000>;
+       #clock-cells = <0>;
+       clock-output-names = "cm";
 
        cm_clocks: clocks {
                #address-cells = <1>;
index 129cdd2..7f89ab3 100644 (file)
@@ -99,6 +99,7 @@ properties:
 
       - items:
           - enum:
+              - asus,sparrow
               - lg,lenok
           - const: qcom,apq8026
 
index fa435d6..ff80152 100644 (file)
@@ -327,6 +327,18 @@ properties:
           - const: renesas,spider-cpu
           - const: renesas,r8a779f0
 
+      - description: R-Car V4H (R8A779G0)
+        items:
+          - enum:
+              - renesas,white-hawk-cpu # White Hawk CPU board (RTP8A779G0ASKB0FC0SA000)
+          - const: renesas,r8a779g0
+
+      - items:
+          - enum:
+              - renesas,white-hawk-breakout # White Hawk BreakOut board (RTP8A779G0ASKB0SB0SA000)
+          - const: renesas,white-hawk-cpu
+          - const: renesas,r8a779g0
+
       - description: R-Car H3e (R8A779M0)
         items:
           - enum:
@@ -406,6 +418,8 @@ properties:
       - description: RZ/G2UL (R9A07G043)
         items:
           - enum:
+              - renesas,smarc-evk # SMARC EVK
+          - enum:
               - renesas,r9a07g043u11 # RZ/G2UL Type-1
               - renesas,r9a07g043u12 # RZ/G2UL Type-2
           - const: renesas,r9a07g043
@@ -430,6 +444,12 @@ properties:
               - renesas,r9a07g054l2 # Dual Cortex-A55 RZ/V2L
           - const: renesas,r9a07g054
 
+      - description: RZ/V2M (R9A09G011)
+        items:
+          - enum:
+              - renesas,rzv2mevk2   # RZ/V2M Eval Board v2.0
+          - const: renesas,r9a09g011
+
 additionalProperties: true
 
 ...
index eece92f..cf9eb1e 100644 (file)
@@ -133,6 +133,11 @@ properties:
               - firefly,roc-rk3399-pc-plus
           - const: rockchip,rk3399
 
+      - description: Firefly Station M2
+        items:
+          - const: firefly,rk3566-roc-pc
+          - const: rockchip,rk3566
+
       - description: FriendlyElec NanoPi R2S
         items:
           - const: friendlyarm,nanopi-r2s
@@ -502,9 +507,18 @@ properties:
           - const: pine64,rockpro64
           - const: rockchip,rk3399
 
-      - description: Pine64 Quartz64 Model A
+      - description: Pine64 Quartz64 Model A/B
         items:
-          - const: pine64,quartz64-a
+          - enum:
+              - pine64,quartz64-a
+              - pine64,quartz64-b
+          - const: rockchip,rk3566
+
+      - description: Pine64 SoQuartz SoM
+        items:
+          - enum:
+              - pine64,soquartz-cm4io
+          - const: pine64,soquartz
           - const: rockchip,rk3566
 
       - description: Radxa Rock
@@ -545,6 +559,11 @@ properties:
           - const: radxa,rock2-square
           - const: rockchip,rk3288
 
+      - description: Radxa ROCK3 Model A
+        items:
+          - const: radxa,rock3a
+          - const: rockchip,rk3568
+
       - description: Rikomagic MK808 v1
         items:
           - const: rikomagic,mk808
index fa0a1b8..8b31565 100644 (file)
@@ -14,21 +14,6 @@ properties:
     const: "/"
   compatible:
     oneOf:
-      - description: DH STM32MP1 SoM based Boards
-        items:
-          - enum:
-              - arrow,stm32mp157a-avenger96 # Avenger96
-              - dh,stm32mp153c-dhcom-drc02
-              - dh,stm32mp157c-dhcom-pdk2
-              - dh,stm32mp157c-dhcom-picoitx
-          - enum:
-              - dh,stm32mp153c-dhcom-som
-              - dh,stm32mp157a-dhcor-som
-              - dh,stm32mp157c-dhcom-som
-          - enum:
-              - st,stm32mp153
-              - st,stm32mp157
-
       - description: emtrion STM32MP1 Argon based Boards
         items:
           - const: emtrion,stm32mp157c-emsbc-argon
@@ -65,6 +50,21 @@ properties:
           - enum:
               - st,stm32mp135f-dk
           - const: st,stm32mp135
+
+      - description: ST STM32MP151 based Boards
+        items:
+          - enum:
+              - prt,prtt1a   # Protonic PRTT1A
+              - prt,prtt1c   # Protonic PRTT1C
+              - prt,prtt1s   # Protonic PRTT1S
+          - const: st,stm32mp151
+
+      - description: DH STM32MP153 SoM based Boards
+        items:
+          - const: dh,stm32mp153c-dhcom-drc02
+          - const: dh,stm32mp153c-dhcom-som
+          - const: st,stm32mp153
+
       - items:
           - enum:
               - shiratech,stm32mp157a-iot-box # IoT Box
@@ -72,13 +72,45 @@ properties:
               - st,stm32mp157c-ed1
               - st,stm32mp157a-dk1
               - st,stm32mp157c-dk2
+          - const: st,stm32mp157
 
+      - items:
+          - const: st,stm32mp157a-dk1-scmi
+          - const: st,stm32mp157a-dk1
           - const: st,stm32mp157
       - items:
+          - const: st,stm32mp157c-dk2-scmi
+          - const: st,stm32mp157c-dk2
+          - const: st,stm32mp157
+      - items:
+          - const: st,stm32mp157c-ed1-scmi
+          - const: st,stm32mp157c-ed1
+          - const: st,stm32mp157
+      - items:
+          - const: st,stm32mp157c-ev1
+          - const: st,stm32mp157c-ed1
+          - const: st,stm32mp157
+      - items:
+          - const: st,stm32mp157c-ev1-scmi
           - const: st,stm32mp157c-ev1
           - const: st,stm32mp157c-ed1
           - const: st,stm32mp157
 
+      - description: DH STM32MP1 SoM based Boards
+        items:
+          - enum:
+              - arrow,stm32mp157a-avenger96 # Avenger96
+          - const: dh,stm32mp157a-dhcor-som
+          - const: st,stm32mp157
+
+      - description: DH STM32MP1 SoM based Boards
+        items:
+          - enum:
+              - dh,stm32mp157c-dhcom-pdk2
+              - dh,stm32mp157c-dhcom-picoitx
+          - const: dh,stm32mp157c-dhcom-som
+          - const: st,stm32mp157
+
       - description: Engicam i.Core STM32MP1 SoM based Boards
         items:
           - enum:
@@ -103,6 +135,7 @@ properties:
           - const: oct,stm32mp15xx-osd32
           - enum:
               - st,stm32mp157
+
       - description: Odyssey STM32MP1 SoM based Boards
         items:
           - enum:
index 086c687..95278a6 100644 (file)
@@ -391,6 +391,11 @@ properties:
           - const: libretech,all-h5-cc-h5
           - const: allwinner,sun50i-h5
 
+      - description: Lichee Pi Nano
+        items:
+          - const: licheepi,licheepi-nano
+          - const: allwinner,suniv-f1c100s
+
       - description: Lichee Pi One
         items:
           - const: licheepi,licheepi-one
index d8b48f2..851f48e 100644 (file)
@@ -18,10 +18,6 @@ stable binding/ABI.
 
 ---------------------------------------------------------------
 
-Boards with the Synaptics AS370 SoC shall have the following properties:
-  Required root node property:
-    compatible: "syna,as370"
-
 Boards with a SoC of the Marvell Berlin family, e.g. Armada 1500
 shall have the following properties:
 
index a46193a..17accb3 100644 (file)
@@ -40,6 +40,11 @@ properties:
           - const: samsung,codina
           - const: st-ericsson,u8500
 
+      - description: Samsung Galaxy Exhibit (SGH-T599)
+        items:
+          - const: samsung,codina-tmo
+          - const: st-ericsson,u8500
+
       - description: Samsung Galaxy Beam (GT-I8530)
         items:
           - const: samsung,gavini
diff --git a/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml b/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml
new file mode 100644 (file)
index 0000000..bad9135
--- /dev/null
@@ -0,0 +1,172 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/qcom,sc7280-lpasscorecc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm LPASS Core & Audio Clock Controller Binding for SC7280
+
+maintainers:
+  - Taniya Das <tdas@codeaurora.org>
+
+description: |
+  Qualcomm LPASS core and audio clock control module which supports the
+  clocks and power domains on SC7280.
+
+  See also:
+  - dt-bindings/clock/qcom,lpasscorecc-sc7280.h
+  - dt-bindings/clock/qcom,lpassaudiocc-sc7280.h
+
+properties:
+  clocks: true
+
+  clock-names: true
+
+  compatible:
+    enum:
+      - qcom,sc7280-lpassaoncc
+      - qcom,sc7280-lpassaudiocc
+      - qcom,sc7280-lpasscorecc
+      - qcom,sc7280-lpasshm
+
+  power-domains:
+    maxItems: 1
+
+  '#clock-cells':
+    const: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  reg:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - clock-names
+  - '#clock-cells'
+  - '#power-domain-cells'
+
+additionalProperties: false
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: qcom,sc7280-lpassaudiocc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: LPASS_AON_CC_MAIN_RCG_CLK_SRC
+
+        clock-names:
+          items:
+            - const: bi_tcxo
+            - const: lpass_aon_cc_main_rcg_clk_src
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc7280-lpassaoncc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+            - description: Board XO active only source
+            - description: LPASS_AON_CC_MAIN_RCG_CLK_SRC
+
+        clock-names:
+          items:
+            - const: bi_tcxo
+            - const: bi_tcxo_ao
+            - const: iface
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sc7280-lpasshm
+              - qcom,sc7280-lpasscorecc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Board XO source
+
+        clock-names:
+          items:
+            - const: bi_tcxo
+
+examples:
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
+    lpass_audiocc: clock-controller@3300000 {
+      compatible = "qcom,sc7280-lpassaudiocc";
+      reg = <0x3300000 0x30000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>,
+               <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>;
+      clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src";
+      power-domains = <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>;
+      #clock-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
+    lpass_hm: clock-controller@3c00000 {
+      compatible = "qcom,sc7280-lpasshm";
+      reg = <0x3c00000 0x28>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>;
+      clock-names = "bi_tcxo";
+      #clock-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
+    lpasscore: clock-controller@3900000 {
+      compatible = "qcom,sc7280-lpasscorecc";
+      reg = <0x3900000 0x50000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>;
+      clock-names = "bi_tcxo";
+      power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>;
+      #clock-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+  - |
+    #include <dt-bindings/clock/qcom,rpmh.h>
+    #include <dt-bindings/clock/qcom,gcc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
+    #include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
+    lpass_aon: clock-controller@3380000 {
+      compatible = "qcom,sc7280-lpassaoncc";
+      reg = <0x3380000 0x30000>;
+      clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>,
+               <&lpasscore LPASS_CORE_CC_CORE_CLK>;
+      clock-names = "bi_tcxo", "bi_tcxo_ao","iface";
+      #clock-cells = <1>;
+      #power-domain-cells = <1>;
+    };
+
+...
diff --git a/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml b/Documentation/devicetree/bindings/clock/samsung,exynosautov9-clock.yaml
new file mode 100644 (file)
index 0000000..eafc715
--- /dev/null
@@ -0,0 +1,219 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/samsung,exynosautov9-clock.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Samsung Exynos Auto v9 SoC clock controller
+
+maintainers:
+  - Chanho Park <chanho61.park@samsung.com>
+  - Chanwoo Choi <cw00.choi@samsung.com>
+  - Krzysztof Kozlowski <krzk@kernel.org>
+  - Sylwester Nawrocki <s.nawrocki@samsung.com>
+  - Tomasz Figa <tomasz.figa@gmail.com>
+
+description: |
+  Exynos Auto v9 clock controller is comprised of several CMU units, generating
+  clocks for different domains. Those CMU units are modeled as separate device
+  tree nodes, and might depend on each other. Root clocks in that clock tree are
+  two external clocks:: OSCCLK/XTCXO (26 MHz) and RTCCLK/XrtcXTI (32768 Hz).
+  The external OSCCLK must be defined as fixed-rate clock in dts.
+
+  CMU_TOP is a top-level CMU, where all base clocks are prepared using PLLs and
+  dividers; all other clocks of function blocks (other CMUs) are usually
+  derived from CMU_TOP.
+
+  Each clock is assigned an identifier and client nodes can use this identifier
+  to specify the clock which they consume. All clocks available for usage
+  in clock consumer nodes are defined as preprocessor macros in
+  'include/dt-bindings/clock/samsung,exynosautov9.h' header.
+
+properties:
+  compatible:
+    enum:
+      - samsung,exynosautov9-cmu-top
+      - samsung,exynosautov9-cmu-busmc
+      - samsung,exynosautov9-cmu-core
+      - samsung,exynosautov9-cmu-fsys2
+      - samsung,exynosautov9-cmu-peric0
+      - samsung,exynosautov9-cmu-peric1
+      - samsung,exynosautov9-cmu-peris
+
+  clocks:
+    minItems: 1
+    maxItems: 5
+
+  clock-names:
+    minItems: 1
+    maxItems: 5
+
+  "#clock-cells":
+    const: 1
+
+  reg:
+    maxItems: 1
+
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-top
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+
+        clock-names:
+          items:
+            - const: oscclk
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-busmc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_BUSMC bus clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_busmc_bus
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-core
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_CORE bus clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_core_bus
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-fsys2
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_FSYS2 bus clock (from CMU_TOP)
+            - description: UFS clock (from CMU_TOP)
+            - description: Ethernet clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_fsys2_bus
+            - const: dout_fsys2_clkcmu_ufs_embd
+            - const: dout_fsys2_clkcmu_ethernet
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-peric0
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_PERIC0 bus clock (from CMU_TOP)
+            - description: PERIC0 IP clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_peric0_bus
+            - const: dout_clkcmu_peric0_ip
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-peric1
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_PERIC1 bus clock (from CMU_TOP)
+            - description: PERIC1 IP clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_peric1_bus
+            - const: dout_clkcmu_peric1_ip
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: samsung,exynosautov9-cmu-peris
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (26 MHz)
+            - description: CMU_PERIS bus clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: dout_clkcmu_peris_bus
+
+required:
+  - compatible
+  - "#clock-cells"
+  - clocks
+  - clock-names
+  - reg
+
+additionalProperties: false
+
+examples:
+  # Clock controller node for CMU_FSYS2
+  - |
+    #include <dt-bindings/clock/samsung,exynosautov9.h>
+
+    cmu_fsys2: clock-controller@17c00000 {
+        compatible = "samsung,exynosautov9-cmu-fsys2";
+        reg = <0x17c00000 0x8000>;
+        #clock-cells = <1>;
+
+        clocks = <&xtcxo>,
+                 <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
+                 <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
+                 <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
+        clock-names = "oscclk",
+                      "dout_clkcmu_fsys2_bus",
+                      "dout_fsys2_clkcmu_ufs_embd",
+                      "dout_fsys2_clkcmu_ethernet";
+    };
+
+...
index a0ae486..45b9412 100644 (file)
@@ -58,6 +58,8 @@ properties:
           - st,stm32mp1-rcc-secure
           - st,stm32mp1-rcc
       - const: syscon
+  clocks: true
+  clock-names: true
 
   reg:
     maxItems: 1
@@ -68,14 +70,53 @@ required:
   - compatible
   - reg
 
+if:
+  properties:
+    compatible:
+      contains:
+        enum:
+          - st,stm32mp1-rcc-secure
+then:
+  properties:
+    clocks:
+      description: Specifies oscillators.
+      maxItems: 5
+
+    clock-names:
+      items:
+        - const: hse
+        - const: hsi
+        - const: csi
+        - const: lse
+        - const: lsi
+  required:
+    - clocks
+    - clock-names
+else:
+  properties:
+    clocks:
+      description:
+        Specifies the external RX clock for ethernet MAC.
+      maxItems: 1
+
+    clock-names:
+      const: ETH_RX_CLK/ETH_REF_CLK
+
 additionalProperties: false
 
 examples:
   - |
+    #include <dt-bindings/clock/stm32mp1-clks.h>
     rcc: rcc@50000000 {
         compatible = "st,stm32mp1-rcc-secure", "syscon";
         reg = <0x50000000 0x1000>;
         #clock-cells = <1>;
         #reset-cells = <1>;
+        clock-names = "hse", "hsi", "csi", "lse", "lsi";
+        clocks = <&scmi_clk CK_SCMI_HSE>,
+                 <&scmi_clk CK_SCMI_HSI>,
+                 <&scmi_clk CK_SCMI_CSI>,
+                 <&scmi_clk CK_SCMI_LSE>,
+                 <&scmi_clk CK_SCMI_LSI>;
     };
 ...
index 18af6b9..d20db79 100644 (file)
@@ -21,6 +21,7 @@ Required properties :
               "ti,clkctrl-l4-per"
               "ti,clkctrl-l4-secure"
               "ti,clkctrl-l4-wkup"
+- clock-output-names : from common clock binding
 - #clock-cells : shall contain 2 with the first entry being the instance
                 offset from the clock domain base and the second being the
                 clock index
@@ -32,7 +33,8 @@ Example: Clock controller node on omap 4430:
        l4per: cm@1400 {
                cm_l4per@0 {
                        cm_l4per_clkctrl: clock@20 {
-                               compatible = "ti,clkctrl-l4-per", "ti,clkctrl";
+                               compatible = "ti,clkctrl";
+                               clock-output-names = "l4_per";
                                reg = <0x20 0x1b0>;
                                #clock-cells = <2>;
                        };
index cb76b3f..9c61992 100644 (file)
@@ -17,6 +17,9 @@ Required properties:
 - #clock-cells : from common clock binding; shall be set to 0.
 - clocks : link phandles of clocks within this domain
 
+Optional properties:
+- clock-output-names : from common clock binding.
+
 Examples:
        dss_clkdm: dss_clkdm {
                compatible = "ti,clockdomain";
index 5f43c47..33ac7c9 100644 (file)
@@ -27,6 +27,9 @@ Required properties:
 - clocks : link phandles of component clocks
 - #clock-cells : from common clock binding; shall be set to 0.
 
+Optional properties:
+- clock-output-names : from common clock binding.
+
 Examples:
 
 usb_l4_gate_ick: usb_l4_gate_ick {
index 662b36d..518e3c1 100644 (file)
@@ -16,6 +16,7 @@ Required properties:
 - clocks: parent clock.
 
 Optional properties:
+- clock-output-names : from common clock binding.
 - ti,autoidle-shift: bit shift of the autoidle enable bit for the clock,
   see [2]
 - reg: offset for the autoidle register of this clock, see [2]
index 56d603c..b4820b1 100644 (file)
@@ -36,6 +36,7 @@ Required properties:
        ti,clkdm-gate-clock type
 
 Optional properties:
+- clock-output-names : from common clock binding.
 - ti,bit-shift : bit shift for programming the clock gate, invalid for
                 ti,clkdm-gate-clock type
 - ti,set-bit-to-disable : inverts default gate programming. Setting the bit
index 3f47040..94ec77d 100644 (file)
@@ -28,6 +28,7 @@ Required properties:
 - reg : base address for the control register
 
 Optional properties:
+- clock-output-names : from common clock binding.
 - ti,bit-shift : bit shift for the bit enabling/disabling the clock (default 0)
 
 Examples:
index eec8994..e17425a 100644 (file)
@@ -42,6 +42,7 @@ Required properties:
 - reg : register offset for register controlling adjustable mux
 
 Optional properties:
+- clock-output-names : from common clock binding.
 - ti,bit-shift : number of bits to shift the bit-mask, defaults to
   0 if not present
 - ti,index-starts-at-one : valid input select programming starts at 1, not
index 7bd8847..1c9929d 100644 (file)
@@ -13,8 +13,10 @@ Required properties:
 - #dma-cells : Has to be 1. imx-dma does not support anything else.
 
 Optional properties:
-- #dma-channels : Number of DMA channels supported. Should be 16.
-- #dma-requests : Number of DMA requests supported.
+- dma-channels : Number of DMA channels supported. Should be 16.
+- #dma-channels : deprecated
+- dma-requests : Number of DMA requests supported.
+- #dma-requests : deprecated
 
 Example:
 
@@ -23,7 +25,7 @@ Example:
                reg = <0x10001000 0x1000>;
                interrupts = <32 33>;
                #dma-cells = <1>;
-               #dma-channels = <16>;
+               dma-channels = <16>;
        };
 
 
index 13c4c82..c7cfa6c 100644 (file)
@@ -34,8 +34,12 @@ properties:
           - nvidia,tegra234-mc
 
   reg:
-    minItems: 1
-    maxItems: 3
+    minItems: 6
+    maxItems: 18
+
+  reg-names:
+    minItems: 6
+    maxItems: 18
 
   interrupts:
     items:
@@ -142,7 +146,18 @@ allOf:
     then:
       properties:
         reg:
-          maxItems: 1
+          maxItems: 6
+          description: 5 memory controller channels and 1 for stream-id registers
+
+        reg-names:
+          maxItems: 6
+          items:
+            - const: sid
+            - const: broadcast
+            - const: ch0
+            - const: ch1
+            - const: ch2
+            - const: ch3
 
   - if:
       properties:
@@ -151,7 +166,30 @@ allOf:
     then:
       properties:
         reg:
-          minItems: 3
+          minItems: 18
+          description: 17 memory controller channels and 1 for stream-id registers
+
+        reg-names:
+          minItems: 18
+          items:
+            - const: sid
+            - const: broadcast
+            - const: ch0
+            - const: ch1
+            - const: ch2
+            - const: ch3
+            - const: ch4
+            - const: ch5
+            - const: ch6
+            - const: ch7
+            - const: ch8
+            - const: ch9
+            - const: ch10
+            - const: ch11
+            - const: ch12
+            - const: ch13
+            - const: ch14
+            - const: ch15
 
   - if:
       properties:
@@ -160,13 +198,37 @@ allOf:
     then:
       properties:
         reg:
-          minItems: 3
+          minItems: 18
+          description: 17 memory controller channels and 1 for stream-id registers
+
+        reg-names:
+          minItems: 18
+          items:
+            - const: sid
+            - const: broadcast
+            - const: ch0
+            - const: ch1
+            - const: ch2
+            - const: ch3
+            - const: ch4
+            - const: ch5
+            - const: ch6
+            - const: ch7
+            - const: ch8
+            - const: ch9
+            - const: ch10
+            - const: ch11
+            - const: ch12
+            - const: ch13
+            - const: ch14
+            - const: ch15
 
 additionalProperties: false
 
 required:
   - compatible
   - reg
+  - reg-names
   - interrupts
   - "#address-cells"
   - "#size-cells"
@@ -182,7 +244,13 @@ examples:
 
         memory-controller@2c00000 {
             compatible = "nvidia,tegra186-mc";
-            reg = <0x0 0x02c00000 0x0 0xb0000>;
+            reg = <0x0 0x02c00000 0x0 0x10000>,    /* MC-SID */
+                  <0x0 0x02c10000 0x0 0x10000>,    /* Broadcast channel */
+                  <0x0 0x02c20000 0x0 0x10000>,    /* MC0 */
+                  <0x0 0x02c30000 0x0 0x10000>,    /* MC1 */
+                  <0x0 0x02c40000 0x0 0x10000>,    /* MC2 */
+                  <0x0 0x02c50000 0x0 0x10000>;    /* MC3 */
+            reg-names = "sid", "broadcast", "ch0", "ch1", "ch2", "ch3";
             interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
 
             #address-cells = <2>;
index 9a6dbf5..6744d17 100644 (file)
@@ -39,6 +39,7 @@ properties:
 
       - items:
           - enum:
+              - renesas,r9a07g043-rpc-if      # RZ/G2UL
               - renesas,r9a07g044-rpc-if      # RZ/G2{L,LC}
               - renesas,r9a07g054-rpc-if      # RZ/V2L
           - const: renesas,rzg2l-rpc-if
index f5a5317..76199a6 100644 (file)
@@ -39,6 +39,7 @@ properties:
   compatible:
     items:
       - enum:
+          - prt,prtt1c-wfm200 # Protonic PRTT1C Board
           - silabs,brd4001a # WGM160P Evaluation Board
           - silabs,brd8022a # WF200 Evaluation Board
           - silabs,brd8023a # WFM200 Evaluation Board
index 76c4179..8d56bed 100644 (file)
@@ -44,6 +44,7 @@ properties:
       - renesas,r8a77995-sysc # R-Car D3
       - renesas,r8a779a0-sysc # R-Car V3U
       - renesas,r8a779f0-sysc # R-Car S4-8
+      - renesas,r8a779g0-sysc # R-Car V4H
 
   reg:
     maxItems: 1
index bbe313b..0d1b89e 100644 (file)
@@ -49,6 +49,7 @@ properties:
       - renesas,r8a77995-rst      # R-Car D3
       - renesas,r8a779a0-rst      # R-Car V3U
       - renesas,r8a779f0-rst      # R-Car S4-8
+      - renesas,r8a779g0-rst      # R-Car V4H
 
   reg:
     maxItems: 1
diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml
new file mode 100644 (file)
index 0000000..563e1d0
--- /dev/null
@@ -0,0 +1,84 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/imx/fsl,imx8mp-hdmi-blk-ctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX8MP HDMI blk-ctrl
+
+maintainers:
+  - Lucas Stach <l.stach@pengutronix.de>
+
+description:
+  The i.MX8MP HDMMI blk-ctrl is a top-level peripheral providing access to
+  the NoC and ensuring proper power sequencing of the display pipeline
+  peripherals located in the HDMI domain of the SoC.
+
+properties:
+  compatible:
+    items:
+      - const: fsl,imx8mp-hdmi-blk-ctrl
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  power-domains:
+    minItems: 8
+    maxItems: 8
+
+  power-domain-names:
+    items:
+      - const: bus
+      - const: irqsteer
+      - const: lcdif
+      - const: pai
+      - const: pvi
+      - const: trng
+      - const: hdmi-tx
+      - const: hdmi-tx-phy
+
+  clocks:
+    minItems: 4
+    maxItems: 4
+
+  clock-names:
+    items:
+      - const: apb
+      - const: axi
+      - const: ref_266m
+      - const: ref_24m
+
+required:
+  - compatible
+  - reg
+  - power-domains
+  - power-domain-names
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8mp-clock.h>
+    #include <dt-bindings/power/imx8mp-power.h>
+
+    blk-ctrl@32fc0000 {
+        compatible = "fsl,imx8mp-hdmi-blk-ctrl", "syscon";
+        reg = <0x32fc0000 0x23c>;
+        clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                 <&clk IMX8MP_CLK_HDMI_ROOT>,
+                 <&clk IMX8MP_CLK_HDMI_REF_266M>,
+                 <&clk IMX8MP_CLK_HDMI_24M>;
+        clock-names = "apb", "axi", "ref_266m", "ref_24m";
+        power-domains = <&pgc_hdmimix>, <&pgc_hdmimix>, <&pgc_hdmimix>,
+                        <&pgc_hdmimix>, <&pgc_hdmimix>, <&pgc_hdmimix>,
+                        <&pgc_hdmimix>, <&pgc_hdmi_phy>;
+        power-domain-names = "bus", "irqsteer", "lcdif", "pai", "pvi", "trng",
+                             "hdmi-tx", "hdmi-tx-phy";
+        #power-domain-cells = <1>;
+    };
diff --git a/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml b/Documentation/devicetree/bindings/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml
new file mode 100644 (file)
index 0000000..21d3ee4
--- /dev/null
@@ -0,0 +1,104 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/imx/fsl,imx8mp-media-blk-ctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NXP i.MX8MP Media Block Control
+
+maintainers:
+  - Paul Elder <paul.elder@ideasonboard.com>
+
+description:
+  The i.MX8MP Media Block Control (MEDIA BLK_CTRL) is a top-level peripheral
+  providing access to the NoC and ensuring proper power sequencing of the
+  peripherals within the MEDIAMIX domain.
+
+properties:
+  compatible:
+    items:
+      - const: fsl,imx8mp-media-blk-ctrl
+      - const: syscon
+
+  reg:
+    maxItems: 1
+
+  '#power-domain-cells':
+    const: 1
+
+  power-domains:
+    maxItems: 10
+
+  power-domain-names:
+    items:
+      - const: bus
+      - const: mipi-dsi1
+      - const: mipi-csi1
+      - const: lcdif1
+      - const: isi
+      - const: mipi-csi2
+      - const: lcdif2
+      - const: isp
+      - const: dwe
+      - const: mipi-dsi2
+
+  clocks:
+    items:
+      - description: The APB clock
+      - description: The AXI clock
+      - description: The pixel clock for the first CSI2 receiver (aclk)
+      - description: The pixel clock for the second CSI2 receiver (aclk)
+      - description: The pixel clock for the first LCDIF (pix_clk)
+      - description: The pixel clock for the second LCDIF (pix_clk)
+      - description: The core clock for the ISP (clk)
+      - description: The MIPI-PHY reference clock used by DSI
+
+  clock-names:
+    items:
+      - const: apb
+      - const: axi
+      - const: cam1
+      - const: cam2
+      - const: disp1
+      - const: disp2
+      - const: isp
+      - const: phy
+
+required:
+  - compatible
+  - reg
+  - '#power-domain-cells'
+  - power-domains
+  - power-domain-names
+  - clocks
+  - clock-names
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/clock/imx8mp-clock.h>
+    #include <dt-bindings/power/imx8mp-power.h>
+
+    media_blk_ctl: blk-ctl@32ec0000 {
+        compatible = "fsl,imx8mp-media-blk-ctrl", "syscon";
+        reg = <0x32ec0000 0x138>;
+        power-domains = <&mediamix_pd>, <&mipi_phy1_pd>, <&mipi_phy1_pd>,
+                        <&mediamix_pd>, <&mediamix_pd>, <&mipi_phy2_pd>,
+                        <&mediamix_pd>, <&ispdwp_pd>, <&ispdwp_pd>,
+                        <&mipi_phy2_pd>;
+        power-domain-names = "bus", "mipi-dsi1", "mipi-csi1", "lcdif1", "isi",
+                             "mipi-csi2", "lcdif2", "isp1", "dwe", "mipi-dsi2";
+        clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
+                 <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>;
+        clock-names = "apb", "axi", "cam1", "cam2", "disp1", "disp2",
+                      "isp", "phy";
+        #power-domain-cells = <1>;
+    };
+...
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 %YAML 1.2
 ---
-$id: "http://devicetree.org/schemas/power/renesas,rzg2l-sysc.yaml#"
+$id: "http://devicetree.org/schemas/soc/renesas/renesas,rzg2l-sysc.yaml#"
 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
 
 title: Renesas RZ/{G2L,V2L} System Controller (SYSC)
@@ -10,8 +10,8 @@ maintainers:
   - Geert Uytterhoeven <geert+renesas@glider.be>
 
 description:
-  The RZ/{G2L,V2L} System Controller (SYSC) performs system control of the LSI
-  and supports following functions,
+  The RZ/{G2L,V2L}-alike System Controller (SYSC) performs system control of
+  the LSI and supports following functions,
   - External terminal state capture function
   - 34-bit address space access function
   - Low power consumption control
@@ -20,6 +20,7 @@ description:
 properties:
   compatible:
     enum:
+      - renesas,r9a07g043-sysc # RZ/G2UL
       - renesas,r9a07g044-sysc # RZ/G2{L,LC}
       - renesas,r9a07g054-sysc # RZ/V2L
 
index 9082482..ca4c953 100644 (file)
@@ -26,6 +26,7 @@ properties:
               - allwinner,sun8i-r40-spi
               - allwinner,sun50i-h6-spi
               - allwinner,sun50i-h616-spi
+              - allwinner,suniv-f1c100s-spi
           - const: allwinner,sun8i-h3-spi
 
   reg:
index 44508b2..495a01c 100644 (file)
@@ -1201,6 +1201,8 @@ patternProperties:
     description: StorLink Semiconductors, Inc.
   "^storm,.*":
     description: Storm Semiconductor, Inc.
+  "^storopack,.*":
+    description: Storopack
   "^summit,.*":
     description: Summit microelectronics
   "^sunchip,.*":
index 43afa24..cbcf19f 100644 (file)
@@ -26,10 +26,8 @@ properties:
               - allwinner,sun50i-h616-wdt
               - allwinner,sun50i-r329-wdt
               - allwinner,sun50i-r329-wdt-reset
+              - allwinner,suniv-f1c100s-wdt
           - const: allwinner,sun6i-a31-wdt
-      - items:
-          - const: allwinner,suniv-f1c100s-wdt
-          - const: allwinner,sun4i-a10-wdt
       - const: allwinner,sun20i-d1-wdt
       - items:
           - const: allwinner,sun20i-d1-wdt-reset
@@ -41,14 +39,8 @@ properties:
   clocks:
     minItems: 1
     items:
-      - description: High-frequency oscillator input, divided internally
-      - description: Low-frequency oscillator input, only found on some variants
-
-  clock-names:
-    minItems: 1
-    items:
-      - const: hosc
-      - const: losc
+      - description: 32 KHz input clock
+      - description: secondary clock source
 
   interrupts:
     maxItems: 1
@@ -73,9 +65,14 @@ then:
   properties:
     clocks:
       minItems: 2
+      items:
+        - description: High-frequency oscillator input, divided internally
+        - description: Low-frequency oscillator input
 
     clock-names:
-      minItems: 2
+      items:
+        - const: hosc
+        - const: losc
 
   required:
     - clock-names
@@ -85,9 +82,6 @@ else:
     clocks:
       maxItems: 1
 
-    clock-names:
-      maxItems: 1
-
 unevaluatedProperties: false
 
 examples:
index 7c16f8a..edfbeda 100644 (file)
@@ -103,6 +103,8 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
        bcm4708-asus-rt-ac56u.dtb \
        bcm4708-asus-rt-ac68u.dtb \
        bcm4708-buffalo-wzr-1750dhp.dtb \
+       bcm4708-buffalo-wzr-1166dhp.dtb \
+       bcm4708-buffalo-wzr-1166dhp2.dtb \
        bcm4708-linksys-ea6300-v1.dtb \
        bcm4708-linksys-ea6500-v2.dtb \
        bcm4708-luxul-xap-1510.dtb \
@@ -179,6 +181,8 @@ dtb-$(CONFIG_ARCH_BERLIN) += \
        berlin2q-marvell-dmp.dtb
 dtb-$(CONFIG_ARCH_BRCMSTB) += \
        bcm7445-bcm97445svmb.dtb
+dtb-$(CONFIG_ARCH_BCMBCA) += \
+       bcm947622.dtb
 dtb-$(CONFIG_ARCH_CLPS711X) += \
        ep7211-edb7211.dtb
 dtb-$(CONFIG_ARCH_DAVINCI) += \
@@ -458,8 +462,10 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6dl-aristainetos_7.dtb \
        imx6dl-aristainetos2_4.dtb \
        imx6dl-aristainetos2_7.dtb \
+       imx6dl-colibri-aster.dtb \
        imx6dl-colibri-eval-v3.dtb \
-       imx6dl-colibri-v1_1-eval-v3.dtb \
+       imx6dl-colibri-iris.dtb \
+       imx6dl-colibri-iris-v2.dtb \
        imx6dl-cubox-i.dtb \
        imx6dl-cubox-i-emmc-som-v15.dtb \
        imx6dl-cubox-i-som-v15.dtb \
@@ -547,6 +553,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \
        imx6q-b450v3.dtb \
        imx6q-b650v3.dtb \
        imx6q-b850v3.dtb \
+       imx6q-bosch-acc.dtb \
        imx6q-cm-fx6.dtb \
        imx6q-cubox-i.dtb \
        imx6q-cubox-i-emmc-som-v15.dtb \
@@ -690,6 +697,9 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ul-kontron-n6310-s.dtb \
        imx6ul-kontron-n6310-s-43.dtb \
        imx6ul-liteboard.dtb \
+       imx6ul-tqma6ul1-mba6ulx.dtb \
+       imx6ul-tqma6ul2-mba6ulx.dtb \
+       imx6ul-tqma6ul2l-mba6ulx.dtb \
        imx6ul-opos6uldev.dtb \
        imx6ul-pico-dwarf.dtb \
        imx6ul-pico-hobbit.dtb \
@@ -701,15 +711,28 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ul-tx6ul-0011.dtb \
        imx6ul-tx6ul-mainboard.dtb \
        imx6ull-14x14-evk.dtb \
+       imx6ull-colibri-aster.dtb \
+       imx6ull-colibri-emmc-aster.dtb \
        imx6ull-colibri-emmc-eval-v3.dtb \
+       imx6ull-colibri-emmc-iris.dtb \
+       imx6ull-colibri-emmc-iris-v2.dtb \
        imx6ull-colibri-eval-v3.dtb \
+       imx6ull-colibri-iris.dtb \
+       imx6ull-colibri-iris-v2.dtb \
+       imx6ull-colibri-wifi-aster.dtb \
        imx6ull-colibri-wifi-eval-v3.dtb \
+       imx6ull-colibri-wifi-iris.dtb \
+       imx6ull-colibri-wifi-iris-v2.dtb \
        imx6ull-jozacp.dtb \
        imx6ull-myir-mys-6ulx-eval.dtb \
        imx6ull-opos6uldev.dtb \
        imx6ull-phytec-segin-ff-rdk-nand.dtb \
        imx6ull-phytec-segin-ff-rdk-emmc.dtb \
        imx6ull-phytec-segin-lc-rdk-nand.dtb \
+       imx6ull-phytec-tauri-emmc.dtb \
+       imx6ull-phytec-tauri-nand.dtb \
+       imx6ull-tqma6ull2-mba6ulx.dtb \
+       imx6ull-tqma6ull2l-mba6ulx.dtb \
        imx6ulz-14x14-evk.dtb \
        imx6ulz-bsh-smm-m2.dtb
 dtb-$(CONFIG_SOC_IMX7D) += \
@@ -732,6 +755,7 @@ dtb-$(CONFIG_SOC_IMX7D) += \
        imx7d-sdb.dtb \
        imx7d-sdb-reva.dtb \
        imx7d-sdb-sht11.dtb \
+       imx7d-smegw01.dtb \
        imx7d-zii-rmu2.dtb \
        imx7d-zii-rpu2.dtb \
        imx7s-colibri-aster.dtb \
@@ -741,9 +765,14 @@ dtb-$(CONFIG_SOC_IMX7D) += \
 dtb-$(CONFIG_SOC_IMX7ULP) += \
        imx7ulp-com.dtb \
        imx7ulp-evk.dtb
+dtb-$(CONFIG_SOC_IMXRT) += \
+       imxrt1050-evk.dtb
 dtb-$(CONFIG_SOC_LAN966) += \
-       lan966x-pcb8291.dtb
+       lan966x-pcb8291.dtb \
+       lan966x-kontron-kswitch-d10-mmt-6g-2gs.dtb \
+       lan966x-kontron-kswitch-d10-mmt-8g.dtb
 dtb-$(CONFIG_SOC_LS1021A) += \
+       ls1021a-iot.dtb \
        ls1021a-moxa-uc-8410a.dtb \
        ls1021a-qds.dtb \
        ls1021a-tsn.dtb \
@@ -977,11 +1006,12 @@ dtb-$(CONFIG_ARCH_OXNAS) += \
        ox820-cloudengines-pogoplug-series-3.dtb
 dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-apq8016-sbc.dtb \
+       qcom-apq8026-asus-sparrow.dtb \
        qcom-apq8026-lg-lenok.dtb \
        qcom-apq8060-dragonboard.dtb \
        qcom-apq8064-cm-qs600.dtb \
        qcom-apq8064-ifc6410.dtb \
-       qcom-apq8064-sony-xperia-yuga.dtb \
+       qcom-apq8064-sony-xperia-lagan-yuga.dtb \
        qcom-apq8064-asus-nexus7-flo.dtb \
        qcom-apq8074-dragonboard.dtb \
        qcom-apq8084-ifc6540.dtb \
@@ -1000,12 +1030,12 @@ dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-msm8660-surf.dtb \
        qcom-msm8916-samsung-serranove.dtb \
        qcom-msm8960-cdp.dtb \
-       qcom-msm8974-fairphone-fp2.dtb \
        qcom-msm8974-lge-nexus5-hammerhead.dtb \
-       qcom-msm8974-samsung-klte.dtb \
-       qcom-msm8974-sony-xperia-amami.dtb \
-       qcom-msm8974-sony-xperia-castor.dtb \
-       qcom-msm8974-sony-xperia-honami.dtb \
+       qcom-msm8974-sony-xperia-rhine-amami.dtb \
+       qcom-msm8974-sony-xperia-rhine-honami.dtb \
+       qcom-msm8974pro-fairphone-fp2.dtb \
+       qcom-msm8974pro-samsung-klte.dtb \
+       qcom-msm8974pro-sony-xperia-shinano-castor.dtb \
        qcom-mdm9615-wp8548-mangoh-green.dtb \
        qcom-sdx55-mtp.dtb \
        qcom-sdx55-t55.dtb \
@@ -1156,10 +1186,14 @@ dtb-$(CONFIG_ARCH_STM32) += \
        stm32h743i-disco.dtb \
        stm32h750i-art-pi.dtb \
        stm32mp135f-dk.dtb \
+       stm32mp151a-prtt1a.dtb \
+       stm32mp151a-prtt1c.dtb \
+       stm32mp151a-prtt1s.dtb \
        stm32mp153c-dhcom-drc02.dtb \
        stm32mp157a-avenger96.dtb \
        stm32mp157a-dhcor-avenger96.dtb \
        stm32mp157a-dk1.dtb \
+       stm32mp157a-dk1-scmi.dtb \
        stm32mp157a-iot-box.dtb \
        stm32mp157a-microgea-stm32mp1-microdev2.0.dtb \
        stm32mp157a-microgea-stm32mp1-microdev2.0-of7.dtb \
@@ -1170,9 +1204,12 @@ dtb-$(CONFIG_ARCH_STM32) += \
        stm32mp157c-dhcom-pdk2.dtb \
        stm32mp157c-dhcom-picoitx.dtb \
        stm32mp157c-dk2.dtb \
+       stm32mp157c-dk2-scmi.dtb \
        stm32mp157c-ed1.dtb \
+       stm32mp157c-ed1-scmi.dtb \
        stm32mp157c-emsbc-argon.dtb \
        stm32mp157c-ev1.dtb \
+       stm32mp157c-ev1-scmi.dtb \
        stm32mp157c-lxa-mc1.dtb \
        stm32mp157c-odyssey.dtb
 dtb-$(CONFIG_MACH_SUN4I) += \
@@ -1382,6 +1419,7 @@ dtb-$(CONFIG_ARCH_U8500) += \
        ste-ux500-samsung-janice.dtb \
        ste-ux500-samsung-gavini.dtb \
        ste-ux500-samsung-codina.dtb \
+       ste-ux500-samsung-codina-tmo.dtb \
        ste-ux500-samsung-skomer.dtb \
        ste-ux500-samsung-kyle.dtb
 dtb-$(CONFIG_ARCH_UNIPHIER) += \
index 3667026..d3eafee 100644 (file)
                        /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
                        regulator-name = "vdd_mpu";
                        regulator-min-microvolt = <912500>;
-                       regulator-max-microvolt = <1312500>;
+                       regulator-max-microvolt = <1351500>;
                        regulator-boot-on;
                        regulator-always-on;
                };
index 56ae509..02e04a1 100644 (file)
 &pruss_tm {
        status = "okay";
 };
+
+&wkup_m3_ipc {
+       firmware-name = "am335x-bone-scale-data.bin";
+};
index 659e99e..b9745a2 100644 (file)
 &pruss_tm {
        status = "okay";
 };
+
+&wkup_m3_ipc {
+       firmware-name = "am335x-evm-scale-data.bin";
+};
index a2db655..9c458e5 100644 (file)
 &pruss_tm {
        status = "okay";
 };
+
+&wkup_m3_ipc {
+       firmware-name = "am335x-evm-scale-data.bin";
+};
index 1918766..1a7e187 100644 (file)
                reg = <0x80000000 0x10000000>; /* 256 MB */
        };
 
-       gpio_keys {
+       guardian_buttons: gpio-keys {
+               pinctrl-names = "default";
+               pinctrl-0 = <&guardian_button_pins>;
                compatible = "gpio-keys";
                #address-cells = <1>;
                #size-cells = <0>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pins>;
 
-               button21 {
+               select-button {
+                       label = "guardian-select-button";
+                       linux,code = <KEY_5>;
+                       gpios = <&gpio1 31 GPIO_ACTIVE_LOW>;
+                       wakeup-source;
+               };
+
+               power-button {
                        label = "guardian-power-button";
                        linux,code = <KEY_POWER>;
-                       gpios = <&gpio2 21 0>;
+                       gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
                        wakeup-source;
                };
        };
 
-       leds {
-               compatible = "gpio-leds";
+       guardian_leds: gpio-leds {
                pinctrl-names = "default";
-               pinctrl-0 = <&leds_pins>;
+               pinctrl-0 = <&guardian_led_pins>;
+               compatible = "gpio-leds";
 
-               led1 {
-                       label = "green:heartbeat";
-                       gpios = <&gpio1 27 GPIO_ACTIVE_HIGH>;
+               life-led {
+                       label = "guardian:life-led";
+                       gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                        default-state = "off";
                };
+       };
 
-               led2 {
-                       label = "green:mmc0";
-                       gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "mmc0";
-                       default-state = "off";
-               };
+       gpio-poweroff {
+               compatible = "gpio-poweroff";
+               gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
        };
 
        panel {
 
        };
 
-       pwm7: dmtimer-pwm {
+       guardian_beeper: dmtimer-pwm@7 {
                compatible = "ti,omap-dmtimer-pwm";
                ti,timers = <&timer7>;
                pinctrl-names = "default";
-               pinctrl-0 = <&dmtimer7_pins>;
+               pinctrl-0 = <&guardian_beeper_pins>;
                ti,clock-source = <0x01>;
        };
 
-       vmmcsd_fixed: regulator-3v3 {
+       vmmcsd_fixed: fixedregulator0 {
                compatible = "regulator-fixed";
                regulator-name = "vmmcsd_fixed";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
        };
+
+       mt_keypad: mt_keypad@0 {
+               compatible = "gpio-mt-keypad";
+               debounce-delay-ms = <10>;
+               col-scan-delay-us = <2>;
+               keypad,num-lines = <5>;
+               linux,no-autorepeat;
+               gpio-activelow;
+               line-gpios = <
+                       &gpio1 24 GPIO_ACTIVE_LOW    /*gpio_56*/
+                       &gpio1 23 GPIO_ACTIVE_LOW    /*gpio_55*/
+                       &gpio1 22 GPIO_ACTIVE_LOW    /*gpio_54*/
+                       &gpio1 20 GPIO_ACTIVE_LOW    /*gpio_52*/
+                       &gpio1 16 GPIO_ACTIVE_LOW    /*gpio_48*/
+               >;
+       };
 };
 
 &elm {
                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>;
                gpmc,device-width = <1>;
                gpmc,sync-clk-ps = <0>;
                gpmc,cs-on-ns = <0>;
-               gpmc,cs-rd-off-ns = <44>;
-               gpmc,cs-wr-off-ns = <44>;
-               gpmc,adv-on-ns = <6>;
-               gpmc,adv-rd-off-ns = <34>;
-               gpmc,adv-wr-off-ns = <44>;
+               gpmc,cs-rd-off-ns = <30>;
+               gpmc,cs-wr-off-ns = <30>;
+               gpmc,adv-on-ns = <0>;
+               gpmc,adv-rd-off-ns = <30>;
+               gpmc,adv-wr-off-ns = <30>;
                gpmc,we-on-ns = <0>;
-               gpmc,we-off-ns = <40>;
-               gpmc,oe-on-ns = <0>;
-               gpmc,oe-off-ns = <54>;
-               gpmc,access-ns = <64>;
-               gpmc,rd-cycle-ns = <82>;
-               gpmc,wr-cycle-ns = <82>;
+               gpmc,we-off-ns = <15>;
+               gpmc,oe-on-ns = <1>;
+               gpmc,oe-off-ns = <15>;
+               gpmc,access-ns = <30>;
+               gpmc,rd-cycle-ns = <30>;
+               gpmc,wr-cycle-ns = <30>;
                gpmc,bus-turnaround-ns = <0>;
                gpmc,cycle2cycle-delay-ns = <0>;
                gpmc,clk-activation-ns = <0>;
-               gpmc,wr-access-ns = <40>;
+               gpmc,wr-access-ns = <0>;
                gpmc,wr-data-mux-bus-ns = <0>;
 
                /*
                };
 
                partition@6 {
-                       label = "u-boot-env";
-                       reg = <0x300000 0x40000>;
+                       label = "u-boot-2";
+                       reg = <0x300000 0x100000>;
                };
 
                partition@7 {
-                       label = "u-boot-env.backup1";
-                       reg = <0x340000 0x40000>;
+                       label = "u-boot-2.backup1";
+                       reg = <0x400000 0x100000>;
                };
 
                partition@8 {
+                       label = "u-boot-env";
+                       reg = <0x500000 0x40000>;
+               };
+
+               partition@9 {
+                       label = "u-boot-env.backup1";
+                       reg = <0x540000 0x40000>;
+               };
+
+               partition@10 {
+                       label = "splash-screen";
+                       reg = <0x580000 0x40000>;
+               };
+
+               partition@11 {
                        label = "UBI";
-                       reg = <0x380000 0x1fc80000>;
+                       reg = <0x5c0000 0x1fa40000>;
                };
        };
 };
 &lcdc {
        blue-and-red-wiring = "crossed";
        status = "okay";
+       port {
+               lcdc_0: endpoint@0 {
+                       remote-endpoint = <0>;
+               };
+       };
 };
 
 &mmc1 {
 &rtc {
        clocks = <&clk_32768_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
        clock-names = "ext-clk", "int-clk";
-       system-power-controller;
 };
 
 &spi0 {
 #include "tps65217.dtsi"
 
 &tps {
+  /*
+   * Configure pmic to enter OFF-state instead of SLEEP-state ("RTC-only
+   * mode") at poweroff.  Most BeagleBone versions do not support RTC-only
+   * mode and risk hardware damage if this mode is entered.
+   *
+   * For details, see linux-omap mailing list May 2015 thread
+   *  [PATCH] ARM: dts: am335x-bone* enable pmic-shutdown-controller
+   * In particular, messages:
+   *  http://www.spinics.net/lists/linux-omap/msg118585.html
+   *  http://www.spinics.net/lists/linux-omap/msg118615.html
+   *
+   * You can override this later with
+   *  &tps {  /delete-property/ ti,pmic-shutdown-controller;  }
+   * if you want to use RTC-only mode and made sure you are not affected
+   * by the hardware problems. (Tip: double-check by performing a current
+   * measurement after shutdown: it should be less than 1 mA.)
+   */
        ti,pmic-shutdown-controller;
        interrupt-parent = <&intc>;
        interrupts = <7>; /* NMI */
 
        backlight {
                isel = <1>;  /* 1 - ISET1, 2 ISET2 */
-               fdim = <100>; /* TPS65217_BL_FDIM_100HZ */
-               default-brightness = <100>;
+               fdim = <500>; /* TPS65217_BL_FDIM_500HZ */
+               default-brightness = <50>;
+               /* 1(on) - enable current sink, while initialization */
+               /* 0(off) - disable current sink, while initialization */
+               isink-en = <1>;
        };
 
        regulators {
                };
 
                dcdc2_reg: regulator@1 {
+                       /* VDD_MPU voltage limits 0.95V - 1.26V with +/-4% tolerance */
                        regulator-name = "vdd_mpu";
                        regulator-min-microvolt = <925000>;
                        regulator-max-microvolt = <1351500>;
                };
 
                dcdc3_reg: regulator@2 {
+                       /* VDD_CORE voltage limits 0.95V - 1.1V with +/-4% tolerance */
                        regulator-name = "vdd_core";
                        regulator-min-microvolt = <925000>;
                        regulator-max-microvolt = <1150000>;
        };
 };
 
+&gpio0 {
+       gpio-line-names =
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "MirxWakeup",
+               "",
+               "";
+};
+
+&gpio3 {
+       ti,gpio-always-on;
+       ti,no-reset-on-init;
+       gpio-line-names =
+               "",
+               "MirxBtReset",
+               "",
+               "CcVolAdcEn",
+               "MirxBlePause",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "AspEn",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "BatVolAdcEn",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "",
+               "";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pins>;
        status = "okay";
 };
 
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart2_pins>;
+       status = "okay";
+};
+
 &usb0 {
        dr_mode = "peripheral";
 };
 
 &usb1 {
        dr_mode = "host";
+       /delete-property/dmas;
+       /delete-property/dma-names;
 };
 
 &am33xx_pinmux {
        pinctrl-names = "default";
-       pinctrl-0 = <&clkout2_pin &gpio_pins>;
+       pinctrl-0 = <&clkout2_pin &guardian_interface_pins>;
 
        clkout2_pin: pinmux_clkout2_pin {
                pinctrl-single,pins = <
+                       /* xdma_event_intr1.clkout2 */
                        AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3)
                >;
        };
 
-       dmtimer7_pins: pinmux_dmtimer7_pins {
+       guardian_interface_pins: pinmux_interface_pins {
                pinctrl-single,pins = <
-                       AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE5)
+                       /* ADC_BATSENSE_EN */
+                       /* (A14) MCASP0_AHCLKx.gpio3[21] */
+                       AM33XX_IOPAD(0x9ac, PIN_OUTPUT_PULLDOWN | MUX_MODE7 )
+                       /* ADC_COINCELL_EN */
+                       /* (J16) MII1_TX_EN.gpio3[3] */
+                       AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE7 )
+                       /* ASP_ENABLE */
+                       /* (A13) MCASP0_ACLKx.gpio3[14] */
+                       AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLUP | MUX_MODE7)
+                       /* (D16) uart1_rxd.uart1_rxd */
+                       AM33XX_IOPAD(0x980, PIN_INPUT | MUX_MODE7)
+                       /* (D15) uart1_txd.uart1_txd */
+                       AM33XX_IOPAD(0x984, PIN_INPUT | MUX_MODE7)
+                       /*SWITCH-OFF_3V6*/
+                       /* (M18) gpio0[1] */
+                       AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE7)
+                       /* MIRACULIX */
+                       /* (H17) gmii1_crs.gpio3[1] */
+                       AM33XX_IOPAD(0x90c, PIN_OUTPUT_PULLDOWN | MUX_MODE7 )
+                       /* (H18) rmii1_refclk.gpio0[29] */
+                       AM33XX_IOPAD(0x944, PIN_OUTPUT_PULLDOWN | MUX_MODE7 )
+                       /* (J18) gmii1_txd3.gpio0[16] */
+                       AM33XX_IOPAD(0x91c, PIN_INPUT           | MUX_MODE7 )
+                       /* (J17) gmii1_rxdv.gpio3[4] */
+                       AM33XX_IOPAD(0x918, PIN_OUTPUT_PULLDOWN | MUX_MODE7 )
                >;
        };
 
-       gpio_keys_pins: pinmux_gpio_keys_pins {
+       guardian_beeper_pins: pinmux_dmtimer7_pins {
                pinctrl-single,pins = <
-                       AM33XX_IOPAD(0x940, PIN_INPUT | MUX_MODE7)
+                       AM33XX_IOPAD(0x968, PIN_OUTPUT | MUX_MODE5) /* (E18) timer7 */
                >;
        };
 
-       gpio_pins: pinmux_gpio_pins {
+       guardian_button_pins: pinmux_guardian_button_pins {
                pinctrl-single,pins = <
-                       AM33XX_IOPAD(0x928, PIN_OUTPUT | MUX_MODE7)
-                       AM33XX_IOPAD(0x990, PIN_OUTPUT | MUX_MODE7)
+                       AM33XX_IOPAD(0x940, PIN_INPUT | MUX_MODE7) /* (M16) gmii1_rxd0.gpio2[21] */
+                       AM33XX_IOPAD(0x884, PIN_INPUT | MUX_MODE7) /* (V9)  gpmc_csn2.gpio1[31] */
                >;
        };
 
+
        i2c0_pins: pinmux_i2c0_pins {
                pinctrl-single,pins = <
-                       AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0)
+                       AM33XX_IOPAD(0x988, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
+                       AM33XX_IOPAD(0x98c, PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
+               >;
+       };
+
+       led_bl_pins: gpio_led_bl_pins {
+               pinctrl-single,pins = <
+                       /* P9_14, gpmc_a[2].GPIO1[18] (backlight control) */
+                       AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE7)
                >;
        };
 
        lcd_disen_pins: pinmux_lcd_disen_pins {
                pinctrl-single,pins = <
+                       /* P9_27, mcasp0_fsr.gpio3[19] (lcd_disen) */
                        AM33XX_IOPAD(0x9a4, PIN_OUTPUT_PULLUP | SLEWCTRL_SLOW | MUX_MODE7)
                >;
        };
 
        lcd_pins_default: pinmux_lcd_pins_default {
                pinctrl-single,pins = <
+                       /* (U10) gpmc_ad8.lcd_data23 */
                        AM33XX_IOPAD(0x820, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (T10) gpmc_ad9.lcd_data22 */
                        AM33XX_IOPAD(0x824, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (T11) gpmc_ad10.lcd_data21 */
                        AM33XX_IOPAD(0x828, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (U12) gpmc_ad11.lcd_data20 */
                        AM33XX_IOPAD(0x82c, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (T12) gpmc_ad12.lcd_data19 */
                        AM33XX_IOPAD(0x830, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (R12) gpmc_ad13.lcd_data18 */
                        AM33XX_IOPAD(0x834, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (V13) gpmc_ad14.lcd_data17 */
                        AM33XX_IOPAD(0x838, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* (U13) gpmc_ad15.lcd_data16 */
                        AM33XX_IOPAD(0x83c, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE1)
+                       /* lcd_data0.lcd_data0 */
                        AM33XX_IOPAD(0x8a0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data1.lcd_data1 */
                        AM33XX_IOPAD(0x8a4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data2.lcd_data2 */
                        AM33XX_IOPAD(0x8a8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data3.lcd_data3 */
                        AM33XX_IOPAD(0x8ac, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data4.lcd_data4 */
                        AM33XX_IOPAD(0x8b0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data5.lcd_data5 */
                        AM33XX_IOPAD(0x8b4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data6.lcd_data6 */
                        AM33XX_IOPAD(0x8b8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data7.lcd_data7 */
                        AM33XX_IOPAD(0x8bc, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data8.lcd_data8 */
                        AM33XX_IOPAD(0x8c0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data9.lcd_data9 */
                        AM33XX_IOPAD(0x8c4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data10.lcd_data10 */
                        AM33XX_IOPAD(0x8c8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data11.lcd_data11 */
                        AM33XX_IOPAD(0x8cc, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data12.lcd_data12 */
                        AM33XX_IOPAD(0x8d0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data13.lcd_data13 */
                        AM33XX_IOPAD(0x8d4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data14.lcd_data14 */
                        AM33XX_IOPAD(0x8d8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_data15.lcd_data15 */
                        AM33XX_IOPAD(0x8dc, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_vsync.lcd_vsync */
                        AM33XX_IOPAD(0x8e0, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_hsync.lcd_hsync */
                        AM33XX_IOPAD(0x8e4, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_pclk.lcd_pclk */
                        AM33XX_IOPAD(0x8e8, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
+                       /* lcd_ac_bias_en.lcd_ac_bias_en */
                        AM33XX_IOPAD(0x8ec, PIN_OUTPUT | SLEWCTRL_SLOW | MUX_MODE0)
                >;
        };
 
        lcd_pins_sleep: pinmux_lcd_pins_sleep {
                pinctrl-single,pins = <
+                       /* lcd_data0.lcd_data0 */
                        AM33XX_IOPAD(0x8a0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data1.lcd_data1 */
                        AM33XX_IOPAD(0x8a4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data2.lcd_data2 */
                        AM33XX_IOPAD(0x8a8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data3.lcd_data3 */
                        AM33XX_IOPAD(0x8ac, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data4.lcd_data4 */
                        AM33XX_IOPAD(0x8b0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data5.lcd_data5 */
                        AM33XX_IOPAD(0x8b4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data6.lcd_data6 */
                        AM33XX_IOPAD(0x8b8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data7.lcd_data7 */
                        AM33XX_IOPAD(0x8bc, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data8.lcd_data8 */
                        AM33XX_IOPAD(0x8c0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data9.lcd_data9 */
                        AM33XX_IOPAD(0x8c4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data10.lcd_data10 */
                        AM33XX_IOPAD(0x8c8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data11.lcd_data11 */
                        AM33XX_IOPAD(0x8cc, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data12.lcd_data12 */
                        AM33XX_IOPAD(0x8d0, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data13.lcd_data13 */
                        AM33XX_IOPAD(0x8d4, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data14.lcd_data14 */
                        AM33XX_IOPAD(0x8d8, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_data15.lcd_data15 */
                        AM33XX_IOPAD(0x8dc, PULL_DISABLE | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_vsync.lcd_vsync */
                        AM33XX_IOPAD(0x8e0, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_hsync.lcd_hsync */
                        AM33XX_IOPAD(0x8e4, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_pclk.lcd_pclk */
                        AM33XX_IOPAD(0x8e8, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7)
+                       /* lcd_ac_bias_en.lcd_ac_bias_en */
                        AM33XX_IOPAD(0x8ec, PIN_INPUT_PULLDOWN | SLEWCTRL_SLOW | MUX_MODE7)
                >;
        };
 
-       leds_pins: pinmux_leds_pins {
+       guardian_led_pins: pinmux_guardian_led_pins {
                pinctrl-single,pins = <
-                       AM33XX_IOPAD(0x868, PIN_OUTPUT | MUX_MODE7)
-                       AM33XX_IOPAD(0x86c, PIN_OUTPUT | MUX_MODE7)
+                       AM33XX_IOPAD(0x868, PIN_OUTPUT | MUX_MODE7) /* (T16) gpmc_a10.gpio1[26] */
                >;
        };
 
        mmc1_pins: pinmux_mmc1_pins {
                pinctrl-single,pins = <
-                       AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)
-                       AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7)
+                       AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0)  /* mmc0_dat3.mmc0_dat3 */
+                       AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0)  /* mmc0_dat2.mmc0_dat2 */
+                       AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0)  /* mmc0_dat1.mmc0_dat1 */
+                       AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0)  /* mmc0_dat0.mmc0_dat0 */
+                       AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0)  /* mmc0_clk.mmc0_clk */
+                       AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0)  /* mmc0_cmd.mmc0_cmd */
+                       AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7)         /* GPIO0_6 */
                >;
        };
 
        spi0_pins: pinmux_spi0_pins {
                pinctrl-single,pins = <
+                       /* SPI0_CLK  - spi0_clk.spi */
                        AM33XX_IOPAD(0x950, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
+                       /* SPI0_MOSI - spi0_d0.spi0 */
                        AM33XX_IOPAD(0x954, PIN_OUTPUT_PULLUP | MUX_MODE0)
+                       /* SPI0_MISO - spi0_d1.spi0 */
                        AM33XX_IOPAD(0x958, PIN_INPUT_PULLUP | MUX_MODE0)
+                       /* SPI0_CS0 - spi */
                        AM33XX_IOPAD(0x95c, PIN_OUTPUT_PULLUP | MUX_MODE0)
                >;
        };
 
        uart0_pins: pinmux_uart0_pins {
                pinctrl-single,pins = <
+                       /* uart0_rxd.uart0_rxd */
                        AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0)
+                       /* uart0_txd.uart0_txd */
                        AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0)
                >;
        };
 
+       uart2_pins: pinmux_uart2_pins {
+               pinctrl-single,pins = <
+                       /* K18 uart2_rxd.mirx_txd */
+                       AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE1)
+                       /* L18 uart2_txd.mirx_rxd */
+                       AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE1)
+               >;
+       };
+
        nandflash_pins: pinmux_nandflash_pins {
                pinctrl-single,pins = <
+                       /* (U7) gpmc_ad0.gpmc_ad0 */
                        AM33XX_IOPAD(0x800, PIN_INPUT | MUX_MODE0)
+                       /* (V7) gpmc_ad1.gpmc_ad1 */
                        AM33XX_IOPAD(0x804, PIN_INPUT | MUX_MODE0)
+                       /* (R8) gpmc_ad2.gpmc_ad2 */
                        AM33XX_IOPAD(0x808, PIN_INPUT | MUX_MODE0)
+                       /* (T8) gpmc_ad3.gpmc_ad3 */
                        AM33XX_IOPAD(0x80c, PIN_INPUT | MUX_MODE0)
+                       /* (U8) gpmc_ad4.gpmc_ad4 */
                        AM33XX_IOPAD(0x810, PIN_INPUT | MUX_MODE0)
+                       /* (V8) gpmc_ad5.gpmc_ad5 */
                        AM33XX_IOPAD(0x814, PIN_INPUT | MUX_MODE0)
+                       /* (R9) gpmc_ad6.gpmc_ad6 */
                        AM33XX_IOPAD(0x818, PIN_INPUT | MUX_MODE0)
+                       /* (T9) gpmc_ad7.gpmc_ad7 */
                        AM33XX_IOPAD(0x81c, PIN_INPUT | MUX_MODE0)
+                       /* (T17) gpmc_wait0.gpmc_wait0 */
                        AM33XX_IOPAD(0x870, PIN_INPUT | MUX_MODE0)
+                       /* (U17) gpmc_wpn.gpmc_wpn */
                        AM33XX_IOPAD(0x874, PIN_OUTPUT | MUX_MODE0)
+                       /* (V6) gpmc_csn0.gpmc_csn0 */
                        AM33XX_IOPAD(0x87c, PIN_OUTPUT | MUX_MODE0)
+                       /* (R7) gpmc_advn_ale.gpmc_advn_ale */
                        AM33XX_IOPAD(0x890, PIN_OUTPUT | MUX_MODE0)
+                       /* (T7) gpmc_oen_ren.gpmc_oen_ren */
                        AM33XX_IOPAD(0x894, PIN_OUTPUT | MUX_MODE0)
+                       /* (U6) gpmc_wen.gpmc_wen */
                        AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE0)
+                       /* (T6) gpmc_be0n_cle.gpmc_be0n_cle */
                        AM33XX_IOPAD(0x89c, PIN_OUTPUT | MUX_MODE0)
                >;
        };
index 11e8f64..92a0e98 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins>;
 
-       m25p80@0 {
+       flash@0 {
                compatible = "mx25l6405d";
                spi-max-frequency = <40000000>;
 
index a7269b9..e7e439a 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins>;
 
-       m25p80@0 {
+       flash@0 {
                compatible = "mx25l6405d";
                spi-max-frequency = <40000000>;
 
index 245c35f..6eea18b 100644 (file)
                reg = <0x80000000 0x10000000>;
        };
 
+       clk32k: clk32k {
+               compatible = "fixed-clock";
+               clock-frequency = <32768>;
+
+               #clock-cells = <0>;
+       };
+
        vdd_mod: vdd_mod_reg {
                compatible = "regulator-fixed";
                regulator-name = "vdd-mod";
                gpmc,wr-data-mux-bus-ns = <0>;
                ti,elm-id = <&elm>;
                ti,nand-ecc-opt = "bch8";
-
-               #address-cells = <1>;
-               #size-cells = <1>;
        };
 };
 
 };
 
 &rtc {
+       clocks = <&clk32k>;
+       clock-names = "ext-clk";
        system-power-controller;
 };
 
index 1479fd9..9d81d4c 100644 (file)
 };
 
 &nand0 {
-       partition@0 {
-               label = "MLO";
-               reg = <0x00000 0x20000>;
-       };
+       nand_parts: partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
 
-       partition@20000 {
-               label = "boot";
-               reg = <0x20000 0x80000>;
+               partition@0 {
+                       label = "MLO";
+                       reg = <0x00000 0x20000>;
+               };
+
+               partition@80000 {
+                       label = "boot";
+                       reg = <0x80000 0x100000>;
+               };
        };
 };
 
index f65cd13..e2cec1f 100644 (file)
        pinctrl-0 = <&spi0_pins>;
        status = "okay";
 
-       serial_flash: m25p80@0 {
+       serial_flash: flash@0 {
                compatible = "jedec,spi-nor";
                spi-max-frequency = <48000000>;
                reg = <0x0>;
index 6516907..73b5d1a 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi0_pins>;
 
-       flash: n25q032@1 {
+       flash: flash@1 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q032";
index b7b7106..d34483a 100644 (file)
  * Copyright (C) 2013 Texas Instruments, Inc.
  */
 &scm_clocks {
-       sys_clkin_ck: sys_clkin_ck@40 {
+       sys_clkin_ck: clock-sys-clkin-22@40 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sys_clkin_ck";
                clocks = <&virt_19200000_ck>, <&virt_24000000_ck>, <&virt_25000000_ck>, <&virt_26000000_ck>;
                ti,bit-shift = <22>;
                reg = <0x0040>;
        };
 
-       adc_tsc_fck: adc_tsc_fck {
+       adc_tsc_fck: clock-adc-tsc-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "adc_tsc_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dcan0_fck: dcan0_fck {
+       dcan0_fck: clock-dcan0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dcan0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dcan1_fck: dcan1_fck {
+       dcan1_fck: clock-dcan1-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dcan1_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       mcasp0_fck: mcasp0_fck {
+       mcasp0_fck: clock-mcasp0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mcasp0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       mcasp1_fck: mcasp1_fck {
+       mcasp1_fck: clock-mcasp1-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mcasp1_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       smartreflex0_fck: smartreflex0_fck {
+       smartreflex0_fck: clock-smartreflex0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "smartreflex0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       smartreflex1_fck: smartreflex1_fck {
+       smartreflex1_fck: clock-smartreflex1-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "smartreflex1_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       sha0_fck: sha0_fck {
+       sha0_fck: clock-sha0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "sha0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       aes0_fck: aes0_fck {
+       aes0_fck: clock-aes0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "aes0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       rng_fck: rng_fck {
+       rng_fck: clock-rng-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "rng_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       ehrpwm0_tbclk: ehrpwm0_tbclk@44e10664 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&l4ls_gclk>;
-               ti,bit-shift = <0>;
-               reg = <0x0664>;
-       };
+       clock@664 {
+               compatible = "ti,clksel";
+               reg = <0x664>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       ehrpwm1_tbclk: ehrpwm1_tbclk@44e10664 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&l4ls_gclk>;
-               ti,bit-shift = <1>;
-               reg = <0x0664>;
-       };
+               ehrpwm0_tbclk: clock-ehrpwm0-tbclk {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "ehrpwm0_tbclk";
+                       clocks = <&l4ls_gclk>;
+                       ti,bit-shift = <0>;
+               };
 
-       ehrpwm2_tbclk: ehrpwm2_tbclk@44e10664 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&l4ls_gclk>;
-               ti,bit-shift = <2>;
-               reg = <0x0664>;
+               ehrpwm1_tbclk: clock-ehrpwm1-tbclk {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "ehrpwm1_tbclk";
+                       clocks = <&l4ls_gclk>;
+                       ti,bit-shift = <1>;
+               };
+
+               ehrpwm2_tbclk: clock-ehrpwm2-tbclk {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "ehrpwm2_tbclk";
+                       clocks = <&l4ls_gclk>;
+                       ti,bit-shift = <2>;
+               };
        };
 };
 &prcm_clocks {
-       clk_32768_ck: clk_32768_ck {
+       clk_32768_ck: clock-clk-32768 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "clk_32768_ck";
                clock-frequency = <32768>;
        };
 
-       clk_rc32k_ck: clk_rc32k_ck {
+       clk_rc32k_ck: clock-clk-rc32k {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "clk_rc32k_ck";
                clock-frequency = <32000>;
        };
 
-       virt_19200000_ck: virt_19200000_ck {
+       virt_19200000_ck: clock-virt-19200000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_19200000_ck";
                clock-frequency = <19200000>;
        };
 
-       virt_24000000_ck: virt_24000000_ck {
+       virt_24000000_ck: clock-virt-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_24000000_ck";
                clock-frequency = <24000000>;
        };
 
-       virt_25000000_ck: virt_25000000_ck {
+       virt_25000000_ck: clock-virt-25000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_25000000_ck";
                clock-frequency = <25000000>;
        };
 
-       virt_26000000_ck: virt_26000000_ck {
+       virt_26000000_ck: clock-virt-26000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_26000000_ck";
                clock-frequency = <26000000>;
        };
 
-       tclkin_ck: tclkin_ck {
+       tclkin_ck: clock-tclkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "tclkin_ck";
                clock-frequency = <12000000>;
        };
 
-       dpll_core_ck: dpll_core_ck@490 {
+       dpll_core_ck: clock@490 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-core-clock";
+               clock-output-names = "dpll_core_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x0490>, <0x045c>, <0x0468>, <0x0460>, <0x0464>;
        };
 
-       dpll_core_x2_ck: dpll_core_x2_ck {
+       dpll_core_x2_ck: clock-dpll-core-x2 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-x2-clock";
+               clock-output-names = "dpll_core_x2_ck";
                clocks = <&dpll_core_ck>;
        };
 
-       dpll_core_m4_ck: dpll_core_m4_ck@480 {
+       dpll_core_m4_ck: clock-dpll-core-m4@480 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m4_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0480>;
                ti,index-starts-at-one;
        };
 
-       dpll_core_m5_ck: dpll_core_m5_ck@484 {
+       dpll_core_m5_ck: clock-dpll-core-m5@484 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m5_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0484>;
                ti,index-starts-at-one;
        };
 
-       dpll_core_m6_ck: dpll_core_m6_ck@4d8 {
+       dpll_core_m6_ck: clock-dpll-core-m6@4d8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m6_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                reg = <0x04d8>;
                ti,index-starts-at-one;
        };
 
-       dpll_mpu_ck: dpll_mpu_ck@488 {
+       dpll_mpu_ck: clock@488 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-clock";
+               clock-output-names = "dpll_mpu_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x0488>, <0x0420>, <0x042c>, <0x0424>, <0x0428>;
        };
 
-       dpll_mpu_m2_ck: dpll_mpu_m2_ck@4a8 {
+       dpll_mpu_m2_ck: clock-dpll-mpu-m2@4a8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_mpu_m2_ck";
                clocks = <&dpll_mpu_ck>;
                ti,max-div = <31>;
                reg = <0x04a8>;
                ti,index-starts-at-one;
        };
 
-       dpll_ddr_ck: dpll_ddr_ck@494 {
+       dpll_ddr_ck: clock@494 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-no-gate-clock";
+               clock-output-names = "dpll_ddr_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x0494>, <0x0434>, <0x0440>, <0x0438>, <0x043c>;
        };
 
-       dpll_ddr_m2_ck: dpll_ddr_m2_ck@4a0 {
+       dpll_ddr_m2_ck: clock-dpll-ddr-m2@4a0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_ddr_m2_ck";
                clocks = <&dpll_ddr_ck>;
                ti,max-div = <31>;
                reg = <0x04a0>;
                ti,index-starts-at-one;
        };
 
-       dpll_ddr_m2_div2_ck: dpll_ddr_m2_div2_ck {
+       dpll_ddr_m2_div2_ck: clock-dpll-ddr-m2-div2 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_ddr_m2_div2_ck";
                clocks = <&dpll_ddr_m2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       dpll_disp_ck: dpll_disp_ck@498 {
+       dpll_disp_ck: clock@498 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-no-gate-clock";
+               clock-output-names = "dpll_disp_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x0498>, <0x0448>, <0x0454>, <0x044c>, <0x0450>;
        };
 
-       dpll_disp_m2_ck: dpll_disp_m2_ck@4a4 {
+       dpll_disp_m2_ck: clock-dpll-disp-m2@4a4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_disp_m2_ck";
                clocks = <&dpll_disp_ck>;
                ti,max-div = <31>;
                reg = <0x04a4>;
                ti,set-rate-parent;
        };
 
-       dpll_per_ck: dpll_per_ck@48c {
+       dpll_per_ck: clock@48c {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-no-gate-j-type-clock";
+               clock-output-names = "dpll_per_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x048c>, <0x0470>, <0x049c>, <0x0474>, <0x0478>;
        };
 
-       dpll_per_m2_ck: dpll_per_m2_ck@4ac {
+       dpll_per_m2_ck: clock-dpll-per-m2@4ac {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2_ck";
                clocks = <&dpll_per_ck>;
                ti,max-div = <31>;
                reg = <0x04ac>;
                ti,index-starts-at-one;
        };
 
-       dpll_per_m2_div4_wkupdm_ck: dpll_per_m2_div4_wkupdm_ck {
+       dpll_per_m2_div4_wkupdm_ck: clock-dpll-per-m2-div4-wkupdm {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_per_m2_div4_wkupdm_ck";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        };
 
-       dpll_per_m2_div4_ck: dpll_per_m2_div4_ck {
+       dpll_per_m2_div4_ck: clock-dpll-per-m2-div4 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_per_m2_div4_ck";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        };
 
-       clk_24mhz: clk_24mhz {
+       clk_24mhz: clock-clk-24mhz {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "clk_24mhz";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <8>;
        };
 
-       clkdiv32k_ck: clkdiv32k_ck {
+       clkdiv32k_ck: clock-clkdiv32k {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "clkdiv32k_ck";
                clocks = <&clk_24mhz>;
                clock-mult = <1>;
                clock-div = <732>;
        };
 
-       l3_gclk: l3_gclk {
+       l3_gclk: clock-l3-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l3_gclk";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       pruss_ocp_gclk: pruss_ocp_gclk@530 {
+       pruss_ocp_gclk: clock-pruss-ocp-gclk@530 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "pruss_ocp_gclk";
                clocks = <&l3_gclk>, <&dpll_disp_m2_ck>;
                reg = <0x0530>;
        };
 
-       mmu_fck: mmu_fck@914 {
+       mmu_fck: clock-mmu-fck-1@914 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "mmu_fck";
                clocks = <&dpll_core_m4_ck>;
                ti,bit-shift = <1>;
                reg = <0x0914>;
        };
 
-       timer1_fck: timer1_fck@528 {
+       timer1_fck: clock-timer1-fck@528 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer1_fck";
                clocks = <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>, <&tclkin_ck>, <&clk_rc32k_ck>, <&clk_32768_ck>;
                reg = <0x0528>;
        };
 
-       timer2_fck: timer2_fck@508 {
+       timer2_fck: clock-timer2-fck@508 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer2_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x0508>;
        };
 
-       timer3_fck: timer3_fck@50c {
+       timer3_fck: clock-timer3-fck@50c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer3_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x050c>;
        };
 
-       timer4_fck: timer4_fck@510 {
+       timer4_fck: clock-timer4-fck@510 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer4_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x0510>;
        };
 
-       timer5_fck: timer5_fck@518 {
+       timer5_fck: clock-timer5-fck@518 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer5_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x0518>;
        };
 
-       timer6_fck: timer6_fck@51c {
+       timer6_fck: clock-timer6-fck@51c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer6_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x051c>;
        };
 
-       timer7_fck: timer7_fck@504 {
+       timer7_fck: clock-timer7-fck@504 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer7_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x0504>;
        };
 
-       usbotg_fck: usbotg_fck@47c {
+       usbotg_fck: clock-usbotg-fck-8@47c {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usbotg_fck";
                clocks = <&dpll_per_ck>;
                ti,bit-shift = <8>;
                reg = <0x047c>;
        };
 
-       dpll_core_m4_div2_ck: dpll_core_m4_div2_ck {
+       dpll_core_m4_div2_ck: clock-dpll-core-m4-div2 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_core_m4_div2_ck";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       ieee5000_fck: ieee5000_fck@e4 {
+       ieee5000_fck: clock-ieee5000-fck-1@e4 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ieee5000_fck";
                clocks = <&dpll_core_m4_div2_ck>;
                ti,bit-shift = <1>;
                reg = <0x00e4>;
        };
 
-       wdt1_fck: wdt1_fck@538 {
+       wdt1_fck: clock-wdt1-fck@538 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "wdt1_fck";
                clocks = <&clk_rc32k_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x0538>;
        };
 
-       l4_rtc_gclk: l4_rtc_gclk {
+       l4_rtc_gclk: clock-l4-rtc-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4_rtc_gclk";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       l4hs_gclk: l4hs_gclk {
+       l4hs_gclk: clock-l4hs-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4hs_gclk";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       l3s_gclk: l3s_gclk {
+       l3s_gclk: clock-l3s-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l3s_gclk";
                clocks = <&dpll_core_m4_div2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       l4fw_gclk: l4fw_gclk {
+       l4fw_gclk: clock-l4fw-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4fw_gclk";
                clocks = <&dpll_core_m4_div2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       l4ls_gclk: l4ls_gclk {
+       l4ls_gclk: clock-l4ls-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4ls_gclk";
                clocks = <&dpll_core_m4_div2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       sysclk_div_ck: sysclk_div_ck {
+       sysclk_div_ck: clock-sysclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "sysclk_div_ck";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       cpsw_125mhz_gclk: cpsw_125mhz_gclk {
+       cpsw_125mhz_gclk: clock-cpsw-125mhz-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "cpsw_125mhz_gclk";
                clocks = <&dpll_core_m5_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       cpsw_cpts_rft_clk: cpsw_cpts_rft_clk@520 {
+       cpsw_cpts_rft_clk: clock-cpsw-cpts-rft@520 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "cpsw_cpts_rft_clk";
                clocks = <&dpll_core_m5_ck>, <&dpll_core_m4_ck>;
                reg = <0x0520>;
        };
 
-       gpio0_dbclk_mux_ck: gpio0_dbclk_mux_ck@53c {
+       gpio0_dbclk_mux_ck: clock-gpio0-dbclk-mux@53c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gpio0_dbclk_mux_ck";
                clocks = <&clk_rc32k_ck>, <&clk_32768_ck>, <&clk_24mhz_clkctrl AM3_CLK_24MHZ_CLKDIV32K_CLKCTRL 0>;
                reg = <0x053c>;
        };
 
-       lcd_gclk: lcd_gclk@534 {
+       lcd_gclk: clock-lcd-gclk@534 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "lcd_gclk";
                clocks = <&dpll_disp_m2_ck>, <&dpll_core_m5_ck>, <&dpll_per_m2_ck>;
                reg = <0x0534>;
                ti,set-rate-parent;
        };
 
-       mmc_clk: mmc_clk {
+       mmc_clk: clock-mmc {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mmc_clk";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       gfx_fclk_clksel_ck: gfx_fclk_clksel_ck@52c {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&dpll_core_m4_ck>, <&dpll_per_m2_ck>;
-               ti,bit-shift = <1>;
-               reg = <0x052c>;
-       };
+       clock@52c {
+               compatible = "ti,clksel";
+               reg = <0x52c>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       gfx_fck_div_ck: gfx_fck_div_ck@52c {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&gfx_fclk_clksel_ck>;
-               reg = <0x052c>;
-               ti,max-div = <2>;
-       };
+               gfx_fclk_clksel_ck: clock-gfx-fclk-clksel {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "gfx_fclk_clksel_ck";
+                       clocks = <&dpll_core_m4_ck>, <&dpll_per_m2_ck>;
+                       ti,bit-shift = <1>;
+               };
 
-       sysclkout_pre_ck: sysclkout_pre_ck@700 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&clk_32768_ck>, <&l3_gclk>, <&dpll_ddr_m2_ck>, <&dpll_per_m2_ck>, <&lcd_gclk>;
-               reg = <0x0700>;
+               gfx_fck_div_ck: clock-gfx-fck-div {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "gfx_fck_div_ck";
+                       clocks = <&gfx_fclk_clksel_ck>;
+                       ti,max-div = <2>;
+               };
        };
 
-       clkout2_div_ck: clkout2_div_ck@700 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&sysclkout_pre_ck>;
-               ti,bit-shift = <3>;
-               ti,max-div = <8>;
-               reg = <0x0700>;
-       };
+       clock@700 {
+               compatible = "ti,clksel";
+               reg = <0x700>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       clkout2_ck: clkout2_ck@700 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&clkout2_div_ck>;
-               ti,bit-shift = <7>;
-               reg = <0x0700>;
+               sysclkout_pre_ck: clock-sysclkout-pre {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "sysclkout_pre_ck";
+                       clocks = <&clk_32768_ck>, <&l3_gclk>, <&dpll_ddr_m2_ck>, <&dpll_per_m2_ck>, <&lcd_gclk>;
+               };
+
+               clkout2_div_ck: clock-clkout2-div {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "clkout2_div_ck";
+                       clocks = <&sysclkout_pre_ck>;
+                       ti,bit-shift = <3>;
+                       ti,max-div = <8>;
+               };
+
+               clkout2_ck: clock-clkout2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "clkout2_ck";
+                       clocks = <&clkout2_div_ck>;
+                       ti,bit-shift = <7>;
+               };
        };
 };
 
 &prcm {
-       per_cm: per-cm@0 {
+       per_cm: clock@0 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "per_cm";
                reg = <0x0 0x400>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x0 0x400>;
 
-               l4ls_clkctrl: l4ls-clkctrl@38 {
+               l4ls_clkctrl: clock@38 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4ls_clkctrl";
                        reg = <0x38 0x2c>, <0x6c 0x28>, <0xac 0xc>, <0xc0 0x1c>, <0xec 0xc>, <0x10c 0x8>, <0x130 0x4>;
                        #clock-cells = <2>;
                };
 
-               l3s_clkctrl: l3s-clkctrl@1c {
+               l3s_clkctrl: clock@1c {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3s_clkctrl";
                        reg = <0x1c 0x4>, <0x30 0x8>, <0x68 0x4>, <0xf8 0x4>;
                        #clock-cells = <2>;
                };
 
-               l3_clkctrl: l3-clkctrl@24 {
+               l3_clkctrl: clock@24 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_clkctrl";
                        reg = <0x24 0xc>, <0x94 0x10>, <0xbc 0x4>, <0xdc 0x8>, <0xfc 0x8>;
                        #clock-cells = <2>;
                };
 
-               l4hs_clkctrl: l4hs-clkctrl@120 {
+               l4hs_clkctrl: clock@120 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4hs_clkctrl";
                        reg = <0x120 0x4>;
                        #clock-cells = <2>;
                };
 
-               pruss_ocp_clkctrl: pruss-ocp-clkctrl@e8 {
+               pruss_ocp_clkctrl: clock@e8 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "pruss_ocp_clkctrl";
                        reg = <0xe8 0x4>;
                        #clock-cells = <2>;
                };
 
-               cpsw_125mhz_clkctrl: cpsw-125mhz-clkctrl@0 {
+               cpsw_125mhz_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "cpsw_125mhz_clkctrl";
                        reg = <0x0 0x18>;
                        #clock-cells = <2>;
                };
 
-               lcdc_clkctrl: lcdc-clkctrl@18 {
+               lcdc_clkctrl: clock@18 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "lcdc_clkctrl";
                        reg = <0x18 0x4>;
                        #clock-cells = <2>;
                };
 
-               clk_24mhz_clkctrl: clk-24mhz-clkctrl@14c {
+               clk_24mhz_clkctrl: clock@14c {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "clk_24mhz_clkctrl";
                        reg = <0x14c 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       wkup_cm: wkup-cm@400 {
+       wkup_cm: clock@400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "wkup_cm";
                reg = <0x400 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x400 0x100>;
 
-               l4_wkup_clkctrl: l4-wkup-clkctrl@0 {
+               l4_wkup_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_wkup_clkctrl";
                        reg = <0x0 0x10>, <0xb4 0x24>;
                        #clock-cells = <2>;
                };
 
-               l3_aon_clkctrl: l3-aon-clkctrl@14 {
+               l3_aon_clkctrl: clock@14 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_aon_clkctrl";
                        reg = <0x14 0x4>;
                        #clock-cells = <2>;
                };
 
-               l4_wkup_aon_clkctrl: l4-wkup-aon-clkctrl@b0 {
+               l4_wkup_aon_clkctrl: clock@b0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_wkup_aon_clkctrl";
                        reg = <0xb0 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       mpu_cm: mpu-cm@600 {
+       mpu_cm: clock@600 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "mpu_cm";
                reg = <0x600 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x600 0x100>;
 
-               mpu_clkctrl: mpu-clkctrl@0 {
+               mpu_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "mpu_clkctrl";
                        reg = <0x0 0x8>;
                        #clock-cells = <2>;
                };
        };
 
-       l4_rtc_cm: l4-rtc-cm@800 {
+       l4_rtc_cm: clock@800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_rtc_cm";
                reg = <0x800 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x800 0x100>;
 
-               l4_rtc_clkctrl: l4-rtc-clkctrl@0 {
+               l4_rtc_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_rtc_clkctrl";
                        reg = <0x0 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       gfx_l3_cm: gfx-l3-cm@900 {
+       gfx_l3_cm: clock@900 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "gfx_l3_cm";
                reg = <0x900 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x900 0x100>;
 
-               gfx_l3_clkctrl: gfx-l3-clkctrl@0 {
+               gfx_l3_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "gfx_l3_clkctrl";
                        reg = <0x0 0x8>;
                        #clock-cells = <2>;
                };
        };
 
-       l4_cefuse_cm: l4-cefuse-cm@a00 {
+       l4_cefuse_cm: clock@a00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_cefuse_cm";
                reg = <0xa00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xa00 0x100>;
 
-               l4_cefuse_clkctrl: l4-cefuse-clkctrl@0 {
+               l4_cefuse_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_cefuse_clkctrl";
                        reg = <0x0 0x24>;
                        #clock-cells = <2>;
                };
index f6ec85d..9a8698b 100644 (file)
                                interrupts = <17>;
                                interrupt-names = "glue";
                                #dma-cells = <2>;
+                               /* For backwards compatibility: */
                                #dma-channels = <30>;
+                               dma-channels = <30>;
                                #dma-requests = <256>;
+                               dma-requests = <256>;
                        };
                };
 
index 220d0a5..0ee7afa 100644 (file)
        };
 };
 &cm_clocks {
-       ipss_ick: ipss_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,am35xx-interface-clock";
-               clocks = <&core_l3_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <4>;
+       clock@a10 {
+               compatible = "ti,clksel";
+               reg = <0xa10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               ipss_ick: clock-ipss-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,am35xx-interface-clock";
+                       clock-output-names = "ipss_ick";
+                       clocks = <&core_l3_ick>;
+                       ti,bit-shift = <4>;
+               };
+
+               uart4_ick_am35xx: clock-uart4-ick-am35xx {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "uart4_ick_am35xx";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <23>;
+               };
        };
 
        rmii_ck: rmii_ck {
                clock-frequency = <27000000>;
        };
 
-       uart4_ick_am35xx: uart4_ick_am35xx@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <23>;
-       };
+       clock@a00 {
+               compatible = "ti,clksel";
+               reg = <0xa00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       uart4_fck_am35xx: uart4_fck_am35xx@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <23>;
+               uart4_fck_am35xx: clock-uart4-fck-am35xx {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "uart4_fck_am35xx";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <23>;
+               };
        };
 };
 
index 9423e9f..c9323d1 100644 (file)
 };
 
 &mcspi1 {
-       s25fl256@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 3e33547..0861e86 100644 (file)
                &edma 17 0>;
        dma-names = "tx0", "rx0";
 
-       flash: w25q64cvzpig@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 4416ddb..46d5361 100644 (file)
        cpu0-supply = <&dcdc2>;
 };
 
+&wkup_m3_ipc {
+       ti,set-io-isolation;
+       firmware-name = "am43x-evm-scale-data.bin";
+};
+
 &pruss1_mdio {
        status = "disabled";
 };
index 53f64e3..5a74b83 100644 (file)
        pinctrl-1 = <&qspi_pins_sleep>;
 
        spi-max-frequency = <48000000>;
-       m25p80@0 {
+       flash@0 {
                compatible = "mx66l51235l";
                spi-max-frequency = <48000000>;
                reg = <0>;
index 20a34d2..036f383 100644 (file)
        pinctrl-0 = <&qspi_pins>;
 
        spi-max-frequency = <48000000>;
-       m25p80@0 {
+       flash@0 {
                compatible = "mx66l51235l";
                spi-max-frequency = <48000000>;
                reg = <0>;
        };
 };
 
+&wkup_m3_ipc {
+       firmware-name = "am43x-evm-scale-data.bin";
+};
+
 &pruss1_mdio {
        status = "disabled";
 };
index 4f9a725..27f4ce8 100644 (file)
        pinctrl-1 = <&qspi1_pins_sleep>;
 
        spi-max-frequency = <48000000>;
-       m25p80@0 {
+       flash@0 {
                compatible = "mx66l51235l";
                spi-max-frequency = <48000000>;
                reg = <0>;
        cpu0-supply = <&dcdc2>;
 };
 
+&wkup_m3_ipc {
+       firmware-name = "am43x-evm-scale-data.bin";
+};
+
 &pruss1_mdio {
        status = "disabled";
 };
index 66e892f..9a5437b 100644 (file)
  * Copyright (C) 2013 Texas Instruments, Inc.
  */
 &scm_clocks {
-       sys_clkin_ck: sys_clkin_ck@40 {
+       sys_clkin_ck: clock-sys-clkin-31@40 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sys_clkin_ck";
                clocks = <&sysboot_freq_sel_ck>, <&crystal_freq_sel_ck>;
                ti,bit-shift = <31>;
                reg = <0x0040>;
        };
 
-       crystal_freq_sel_ck: crystal_freq_sel_ck@40 {
+       crystal_freq_sel_ck: clock-crystal-freq-sel-29@40 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "crystal_freq_sel_ck";
                clocks = <&virt_19200000_ck>, <&virt_24000000_ck>, <&virt_25000000_ck>, <&virt_26000000_ck>;
                ti,bit-shift = <29>;
                reg = <0x0040>;
        };
 
-       sysboot_freq_sel_ck: sysboot_freq_sel_ck@44e10040 {
+       sysboot_freq_sel_ck: clock-sysboot-freq-sel-22@44e10040 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sysboot_freq_sel_ck";
                clocks = <&virt_19200000_ck>, <&virt_24000000_ck>, <&virt_25000000_ck>, <&virt_26000000_ck>;
                ti,bit-shift = <22>;
                reg = <0x0040>;
        };
 
-       adc_tsc_fck: adc_tsc_fck {
+       adc_tsc_fck: clock-adc-tsc-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "adc_tsc_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dcan0_fck: dcan0_fck {
+       dcan0_fck: clock-dcan0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dcan0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dcan1_fck: dcan1_fck {
+       dcan1_fck: clock-dcan1-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dcan1_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       mcasp0_fck: mcasp0_fck {
+       mcasp0_fck: clock-mcasp0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mcasp0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       mcasp1_fck: mcasp1_fck {
+       mcasp1_fck: clock-mcasp1-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mcasp1_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       smartreflex0_fck: smartreflex0_fck {
+       smartreflex0_fck: clock-smartreflex0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "smartreflex0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       smartreflex1_fck: smartreflex1_fck {
+       smartreflex1_fck: clock-smartreflex1-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "smartreflex1_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       sha0_fck: sha0_fck {
+       sha0_fck: clock-sha0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "sha0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       aes0_fck: aes0_fck {
+       aes0_fck: clock-aes0-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "aes0_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       rng_fck: rng_fck {
+       rng_fck: clock-rng-fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "rng_fck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       ehrpwm0_tbclk: ehrpwm0_tbclk@664 {
+       ehrpwm0_tbclk: clock-ehrpwm0-tbclk-0@664 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm0_tbclk";
                clocks = <&l4ls_gclk>;
                ti,bit-shift = <0>;
                reg = <0x0664>;
        };
 
-       ehrpwm1_tbclk: ehrpwm1_tbclk@664 {
+       ehrpwm1_tbclk: clock-ehrpwm1-tbclk-1@664 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm1_tbclk";
                clocks = <&l4ls_gclk>;
                ti,bit-shift = <1>;
                reg = <0x0664>;
        };
 
-       ehrpwm2_tbclk: ehrpwm2_tbclk@664 {
+       ehrpwm2_tbclk: clock-ehrpwm2-tbclk-2@664 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm2_tbclk";
                clocks = <&l4ls_gclk>;
                ti,bit-shift = <2>;
                reg = <0x0664>;
        };
 
-       ehrpwm3_tbclk: ehrpwm3_tbclk@664 {
+       ehrpwm3_tbclk: clock-ehrpwm3-tbclk-4@664 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm3_tbclk";
                clocks = <&l4ls_gclk>;
                ti,bit-shift = <4>;
                reg = <0x0664>;
        };
 
-       ehrpwm4_tbclk: ehrpwm4_tbclk@664 {
+       ehrpwm4_tbclk: clock-ehrpwm4-tbclk-5@664 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm4_tbclk";
                clocks = <&l4ls_gclk>;
                ti,bit-shift = <5>;
                reg = <0x0664>;
        };
 
-       ehrpwm5_tbclk: ehrpwm5_tbclk@664 {
+       ehrpwm5_tbclk: clock-ehrpwm5-tbclk-6@664 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm5_tbclk";
                clocks = <&l4ls_gclk>;
                ti,bit-shift = <6>;
                reg = <0x0664>;
        };
 };
 &prcm_clocks {
-       clk_32768_ck: clk_32768_ck {
+       clk_32768_ck: clock-clk-32768 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "clk_32768_ck";
                clock-frequency = <32768>;
        };
 
-       clk_rc32k_ck: clk_rc32k_ck {
+       clk_rc32k_ck: clock-clk-rc32k {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "clk_rc32k_ck";
                clock-frequency = <32768>;
        };
 
-       virt_19200000_ck: virt_19200000_ck {
+       virt_19200000_ck: clock-virt-19200000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_19200000_ck";
                clock-frequency = <19200000>;
        };
 
-       virt_24000000_ck: virt_24000000_ck {
+       virt_24000000_ck: clock-virt-24000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_24000000_ck";
                clock-frequency = <24000000>;
        };
 
-       virt_25000000_ck: virt_25000000_ck {
+       virt_25000000_ck: clock-virt-25000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_25000000_ck";
                clock-frequency = <25000000>;
        };
 
-       virt_26000000_ck: virt_26000000_ck {
+       virt_26000000_ck: clock-virt-26000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_26000000_ck";
                clock-frequency = <26000000>;
        };
 
-       tclkin_ck: tclkin_ck {
+       tclkin_ck: clock-tclkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "tclkin_ck";
                clock-frequency = <26000000>;
        };
 
-       dpll_core_ck: dpll_core_ck@2d20 {
+       dpll_core_ck: clock@2d20 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-core-clock";
+               clock-output-names = "dpll_core_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x2d20>, <0x2d24>, <0x2d2c>, <0x2d48>, <0x2d4c>;
        };
 
-       dpll_core_x2_ck: dpll_core_x2_ck {
+       dpll_core_x2_ck: clock-dpll-core-x2 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-x2-clock";
+               clock-output-names = "dpll_core_x2_ck";
                clocks = <&dpll_core_ck>;
        };
 
-       dpll_core_m4_ck: dpll_core_m4_ck@2d38 {
+       dpll_core_m4_ck: clock-dpll-core-m4-8@2d38 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m4_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_m5_ck: dpll_core_m5_ck@2d3c {
+       dpll_core_m5_ck: clock-dpll-core-m5-8@2d3c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m5_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_m6_ck: dpll_core_m6_ck@2d40 {
+       dpll_core_m6_ck: clock-dpll-core-m6-8@2d40 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m6_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_mpu_ck: dpll_mpu_ck@2d60 {
+       dpll_mpu_ck: clock@2d60 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-clock";
+               clock-output-names = "dpll_mpu_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x2d60>, <0x2d64>, <0x2d6c>, <0x2d88>, <0x2d8c>;
        };
 
-       dpll_mpu_m2_ck: dpll_mpu_m2_ck@2d70 {
+       dpll_mpu_m2_ck: clock-dpll-mpu-m2-8@2d70 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_mpu_m2_ck";
                clocks = <&dpll_mpu_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       mpu_periphclk: mpu_periphclk {
+       mpu_periphclk: clock-mpu-periphclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mpu_periphclk";
                clocks = <&dpll_mpu_m2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       dpll_ddr_ck: dpll_ddr_ck@2da0 {
+       dpll_ddr_ck: clock@2da0 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-clock";
+               clock-output-names = "dpll_ddr_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x2da0>, <0x2da4>, <0x2dac>, <0x2dc8>, <0x2dcc>;
        };
 
-       dpll_ddr_m2_ck: dpll_ddr_m2_ck@2db0 {
+       dpll_ddr_m2_ck: clock-dpll-ddr-m2-8@2db0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_ddr_m2_ck";
                clocks = <&dpll_ddr_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_disp_ck: dpll_disp_ck@2e20 {
+       dpll_disp_ck: clock@2e20 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-clock";
+               clock-output-names = "dpll_disp_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x2e20>, <0x2e24>, <0x2e2c>, <0x2e48>, <0x2e4c>;
        };
 
-       dpll_disp_m2_ck: dpll_disp_m2_ck@2e30 {
+       dpll_disp_m2_ck: clock-dpll-disp-m2-8@2e30 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_disp_m2_ck";
                clocks = <&dpll_disp_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,set-rate-parent;
        };
 
-       dpll_per_ck: dpll_per_ck@2de0 {
+       dpll_per_ck: clock@2de0 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-j-type-clock";
+               clock-output-names = "dpll_per_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x2de0>, <0x2de4>, <0x2dec>, <0x2e08>, <0x2e0c>;
        };
 
-       dpll_per_m2_ck: dpll_per_m2_ck@2df0 {
+       dpll_per_m2_ck: clock-dpll-per-m2-8@2df0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2_ck";
                clocks = <&dpll_per_ck>;
                ti,max-div = <127>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_m2_div4_wkupdm_ck: dpll_per_m2_div4_wkupdm_ck {
+       dpll_per_m2_div4_wkupdm_ck: clock-dpll-per-m2-div4-wkupdm {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_per_m2_div4_wkupdm_ck";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        };
 
-       dpll_per_m2_div4_ck: dpll_per_m2_div4_ck {
+       dpll_per_m2_div4_ck: clock-dpll-per-m2-div4 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_per_m2_div4_ck";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        };
 
-       clk_24mhz: clk_24mhz {
+       clk_24mhz: clock-clk-24mhz {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "clk_24mhz";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <8>;
        };
 
-       clkdiv32k_ck: clkdiv32k_ck {
+       clkdiv32k_ck: clock-clkdiv32k {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "clkdiv32k_ck";
                clocks = <&clk_24mhz>;
                clock-mult = <1>;
                clock-div = <732>;
        };
 
-       clkdiv32k_ick: clkdiv32k_ick@2a38 {
+       clkdiv32k_ick: clock-clkdiv32k-ick-8@2a38 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "clkdiv32k_ick";
                clocks = <&clkdiv32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x2a38>;
        };
 
-       sysclk_div: sysclk_div {
+       sysclk_div: clock-sysclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "sysclk_div";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       pruss_ocp_gclk: pruss_ocp_gclk@4248 {
+       pruss_ocp_gclk: clock-pruss-ocp-gclk@4248 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "pruss_ocp_gclk";
                clocks = <&sysclk_div>, <&dpll_disp_m2_ck>;
                reg = <0x4248>;
        };
 
-       clk_32k_tpm_ck: clk_32k_tpm_ck {
+       clk_32k_tpm_ck: clock-clk-32k-tpm {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "clk_32k_tpm_ck";
                clock-frequency = <32768>;
        };
 
-       timer1_fck: timer1_fck@4200 {
+       timer1_fck: clock-timer1-fck@4200 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer1_fck";
                clocks = <&sys_clkin_ck>, <&clkdiv32k_ick>, <&tclkin_ck>, <&clk_rc32k_ck>, <&clk_32768_ck>, <&clk_32k_tpm_ck>;
                reg = <0x4200>;
        };
 
-       timer2_fck: timer2_fck@4204 {
+       timer2_fck: clock-timer2-fck@4204 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer2_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
                reg = <0x4204>;
        };
 
-       timer3_fck: timer3_fck@4208 {
+       timer3_fck: clock-timer3-fck@4208 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer3_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
                reg = <0x4208>;
        };
 
-       timer4_fck: timer4_fck@420c {
+       timer4_fck: clock-timer4-fck@420c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer4_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
                reg = <0x420c>;
        };
 
-       timer5_fck: timer5_fck@4210 {
+       timer5_fck: clock-timer5-fck@4210 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer5_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
                reg = <0x4210>;
        };
 
-       timer6_fck: timer6_fck@4214 {
+       timer6_fck: clock-timer6-fck@4214 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer6_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
                reg = <0x4214>;
        };
 
-       timer7_fck: timer7_fck@4218 {
+       timer7_fck: clock-timer7-fck@4218 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer7_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>;
                reg = <0x4218>;
        };
 
-       wdt1_fck: wdt1_fck@422c {
+       wdt1_fck: clock-wdt1-fck@422c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "wdt1_fck";
                clocks = <&clk_rc32k_ck>, <&clkdiv32k_ick>;
                reg = <0x422c>;
        };
                reg = <0x424c>;
        };
 
-       l3_gclk: l3_gclk {
+       l3_gclk: clock-l3-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l3_gclk";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_core_m4_div2_ck: dpll_core_m4_div2_ck {
+       dpll_core_m4_div2_ck: clock-dpll-core-m4-div2 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_core_m4_div2_ck";
                clocks = <&sysclk_div>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       l4hs_gclk: l4hs_gclk {
+       l4hs_gclk: clock-l4hs-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4hs_gclk";
                clocks = <&dpll_core_m4_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       l3s_gclk: l3s_gclk {
+       l3s_gclk: clock-l3s-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l3s_gclk";
                clocks = <&dpll_core_m4_div2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       l4ls_gclk: l4ls_gclk {
+       l4ls_gclk: clock-l4ls-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4ls_gclk";
                clocks = <&dpll_core_m4_div2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       cpsw_125mhz_gclk: cpsw_125mhz_gclk {
+       cpsw_125mhz_gclk: clock-cpsw-125mhz-gclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "cpsw_125mhz_gclk";
                clocks = <&dpll_core_m5_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       cpsw_cpts_rft_clk: cpsw_cpts_rft_clk@4238 {
+       cpsw_cpts_rft_clk: clock-cpsw-cpts-rft@4238 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "cpsw_cpts_rft_clk";
                clocks = <&sysclk_div>, <&dpll_core_m5_ck>, <&dpll_disp_m2_ck>;
                reg = <0x4238>;
        };
 
-       dpll_clksel_mac_clk: dpll_clksel_mac_clk@4234 {
+       dpll_clksel_mac_clk: clock-dpll-clksel-mac-2@4234 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_clksel_mac_clk";
                clocks = <&dpll_core_m5_ck>;
                reg = <0x4234>;
                ti,bit-shift = <2>;
                ti,dividers = <2>, <5>;
        };
 
-       clk_32k_mosc_ck: clk_32k_mosc_ck {
+       clk_32k_mosc_ck: clock-clk-32k-mosc {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "clk_32k_mosc_ck";
                clock-frequency = <32768>;
        };
 
-       gpio0_dbclk_mux_ck: gpio0_dbclk_mux_ck@4240 {
+       gpio0_dbclk_mux_ck: clock-gpio0-dbclk-mux@4240 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gpio0_dbclk_mux_ck";
                clocks = <&clk_rc32k_ck>, <&clk_32768_ck>, <&clkdiv32k_ick>, <&clk_32k_mosc_ck>, <&clk_32k_tpm_ck>;
                reg = <0x4240>;
        };
 
-       mmc_clk: mmc_clk {
+       mmc_clk: clock-mmc {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mmc_clk";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       gfx_fclk_clksel_ck: gfx_fclk_clksel_ck@423c {
+       gfx_fclk_clksel_ck: clock-gfx-fclk-clksel-1@423c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gfx_fclk_clksel_ck";
                clocks = <&sysclk_div>, <&dpll_per_m2_ck>;
                ti,bit-shift = <1>;
                reg = <0x423c>;
        };
 
-       gfx_fck_div_ck: gfx_fck_div_ck@423c {
+       gfx_fck_div_ck: clock-gfx-fck-div@423c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "gfx_fck_div_ck";
                clocks = <&gfx_fclk_clksel_ck>;
                reg = <0x423c>;
                ti,max-div = <2>;
        };
 
-       disp_clk: disp_clk@4244 {
+       disp_clk: clock-disp@4244 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "disp_clk";
                clocks = <&dpll_disp_m2_ck>, <&dpll_core_m5_ck>, <&dpll_per_m2_ck>;
                reg = <0x4244>;
                ti,set-rate-parent;
        };
 
-       dpll_extdev_ck: dpll_extdev_ck@2e60 {
+       dpll_extdev_ck: clock@2e60 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-clock";
+               clock-output-names = "dpll_extdev_ck";
                clocks = <&sys_clkin_ck>, <&sys_clkin_ck>;
                reg = <0x2e60>, <0x2e64>, <0x2e6c>, <0x2e88>, <0x2e8c>;
        };
 
-       dpll_extdev_m2_ck: dpll_extdev_m2_ck@2e70 {
+       dpll_extdev_m2_ck: clock-dpll-extdev-m2-8@2e70 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_extdev_m2_ck";
                clocks = <&dpll_extdev_ck>;
                ti,max-div = <127>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       mux_synctimer32k_ck: mux_synctimer32k_ck@4230 {
+       mux_synctimer32k_ck: clock-mux-synctimer32k@4230 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "mux_synctimer32k_ck";
                clocks = <&clk_32768_ck>, <&clk_32k_tpm_ck>, <&clkdiv32k_ick>;
                reg = <0x4230>;
        };
 
-       timer8_fck: timer8_fck@421c {
+       timer8_fck: clock-timer8-fck@421c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer8_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
                reg = <0x421c>;
        };
 
-       timer9_fck: timer9_fck@4220 {
+       timer9_fck: clock-timer9-fck@4220 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer9_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
                reg = <0x4220>;
        };
 
-       timer10_fck: timer10_fck@4224 {
+       timer10_fck: clock-timer10-fck@4224 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer10_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
                reg = <0x4224>;
        };
 
-       timer11_fck: timer11_fck@4228 {
+       timer11_fck: clock-timer11-fck@4228 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "timer11_fck";
                clocks = <&tclkin_ck>, <&sys_clkin_ck>, <&clkdiv32k_ick>, <&clk_32k_tpm_ck>;
                reg = <0x4228>;
        };
 
-       cpsw_50m_clkdiv: cpsw_50m_clkdiv {
+       cpsw_50m_clkdiv: clock-cpsw-50m-clkdiv {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "cpsw_50m_clkdiv";
                clocks = <&dpll_core_m5_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       cpsw_5m_clkdiv: cpsw_5m_clkdiv {
+       cpsw_5m_clkdiv: clock-cpsw-5m-clkdiv {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "cpsw_5m_clkdiv";
                clocks = <&cpsw_50m_clkdiv>;
                clock-mult = <1>;
                clock-div = <10>;
        };
 
-       dpll_ddr_x2_ck: dpll_ddr_x2_ck {
+       dpll_ddr_x2_ck: clock-dpll-ddr-x2 {
                #clock-cells = <0>;
                compatible = "ti,am3-dpll-x2-clock";
+               clock-output-names = "dpll_ddr_x2_ck";
                clocks = <&dpll_ddr_ck>;
        };
 
-       dpll_ddr_m4_ck: dpll_ddr_m4_ck@2db8 {
+       dpll_ddr_m4_ck: clock-dpll-ddr-m4-8@2db8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_ddr_m4_ck";
                clocks = <&dpll_ddr_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_clkdcoldo: dpll_per_clkdcoldo@2e14 {
+       dpll_per_clkdcoldo: clock-dpll-per-clkdcoldo-8@2e14 {
                #clock-cells = <0>;
                compatible = "ti,fixed-factor-clock";
+               clock-output-names = "dpll_per_clkdcoldo";
                clocks = <&dpll_per_ck>;
                ti,clock-mult = <1>;
                ti,clock-div = <1>;
                ti,invert-autoidle-bit;
        };
 
-       dll_aging_clk_div: dll_aging_clk_div@4250 {
+       dll_aging_clk_div: clock-dll-aging-clk-div@4250 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dll_aging_clk_div";
                clocks = <&sys_clkin_ck>;
                reg = <0x4250>;
                ti,dividers = <8>, <16>, <32>;
        };
 
-       div_core_25m_ck: div_core_25m_ck {
+       div_core_25m_ck: clock-div-core-25m {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "div_core_25m_ck";
                clocks = <&sysclk_div>;
                clock-mult = <1>;
                clock-div = <8>;
        };
 
-       func_12m_clk: func_12m_clk {
+       func_12m_clk: clock-func-12m {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_12m_clk";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <16>;
        };
 
-       vtp_clk_div: vtp_clk_div {
+       vtp_clk_div: clock-vtp-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "vtp_clk_div";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       usbphy_32khz_clkmux: usbphy_32khz_clkmux@4260 {
+       usbphy_32khz_clkmux: clock-usbphy-32khz-clkmux@4260 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "usbphy_32khz_clkmux";
                clocks = <&clk_32768_ck>, <&clk_32k_tpm_ck>;
                reg = <0x4260>;
        };
 
-       usb_phy0_always_on_clk32k: usb_phy0_always_on_clk32k@2a40 {
+       usb_phy0_always_on_clk32k: clock-usb-phy0-always-on-clk32k-8@2a40 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy0_always_on_clk32k";
                clocks = <&usbphy_32khz_clkmux>;
                ti,bit-shift = <8>;
                reg = <0x2a40>;
        };
 
-       usb_phy1_always_on_clk32k: usb_phy1_always_on_clk32k@2a48 {
+       usb_phy1_always_on_clk32k: clock-usb-phy1-always-on-clk32k-8@2a48 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy1_always_on_clk32k";
                clocks = <&usbphy_32khz_clkmux>;
                ti,bit-shift = <8>;
                reg = <0x2a48>;
        };
 
-       clkout1_osc_div_ck: clkout1-osc-div-ck {
+       clkout1_osc_div_ck: clock-clkout1-osc-div-ck {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "clkout1_osc_div_ck";
                clocks = <&sys_clkin_ck>;
                ti,bit-shift = <20>;
                ti,max-div = <4>;
                reg = <0x4100>;
        };
 
-       clkout1_src2_mux_ck: clkout1-src2-mux-ck {
+       clkout1_src2_mux_ck: clock-clkout1-src2-mux-ck {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "clkout1_src2_mux_ck";
                clocks = <&clk_rc32k_ck>, <&sysclk_div>, <&dpll_ddr_m2_ck>,
                         <&dpll_per_m2_ck>, <&dpll_disp_m2_ck>,
                         <&dpll_mpu_m2_ck>;
                reg = <0x4100>;
        };
 
-       clkout1_src2_pre_div_ck: clkout1-src2-pre-div-ck {
+       clkout1_src2_pre_div_ck: clock-clkout1-src2-pre-div-ck {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "clkout1_src2_pre_div_ck";
                clocks = <&clkout1_src2_mux_ck>;
                ti,bit-shift = <4>;
                ti,max-div = <8>;
                reg = <0x4100>;
        };
 
-       clkout1_src2_post_div_ck: clkout1-src2-post-div-ck {
+       clkout1_src2_post_div_ck: clock-clkout1-src2-post-div-ck {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "clkout1_src2_post_div_ck";
                clocks = <&clkout1_src2_pre_div_ck>;
                ti,bit-shift = <8>;
                ti,max-div = <32>;
                reg = <0x4100>;
        };
 
-       clkout1_mux_ck: clkout1-mux-ck {
+       clkout1_mux_ck: clock-clkout1-mux-ck {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "clkout1_mux_ck";
                clocks = <&clkout1_osc_div_ck>, <&clk_rc32k_ck>,
                         <&clkout1_src2_post_div_ck>, <&dpll_extdev_m2_ck>;
                ti,bit-shift = <16>;
                reg = <0x4100>;
        };
 
-       clkout1_ck: clkout1-ck {
+       clkout1_ck: clock-clkout1-ck {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "clkout1_ck";
                clocks = <&clkout1_mux_ck>;
                ti,bit-shift = <23>;
                reg = <0x4100>;
 };
 
 &prcm {
-       wkup_cm: wkup-cm@2800 {
+       wkup_cm: clock@2800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "wkup_cm";
                reg = <0x2800 0x400>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x2800 0x400>;
 
-               l3s_tsc_clkctrl: l3s-tsc-clkctrl@120 {
+               l3s_tsc_clkctrl: clock@120 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3s_tsc_clkctrl";
                        reg = <0x120 0x4>;
                        #clock-cells = <2>;
                };
 
-               l4_wkup_aon_clkctrl: l4-wkup-aon-clkctrl@228 {
+               l4_wkup_aon_clkctrl: clock@228 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_wkup_aon_clkctrl";
                        reg = <0x228 0xc>;
                        #clock-cells = <2>;
                };
 
-               l4_wkup_clkctrl: l4-wkup-clkctrl@220 {
+               l4_wkup_clkctrl: clock@220 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_wkup_clkctrl";
                        reg = <0x220 0x4>, <0x328 0x44>;
                        #clock-cells = <2>;
                };
 
        };
 
-       mpu_cm: mpu-cm@8300 {
+       mpu_cm: clock@8300 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "mpu_cm";
                reg = <0x8300 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x8300 0x100>;
 
-               mpu_clkctrl: mpu-clkctrl@20 {
+               mpu_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "mpu_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       gfx_l3_cm: gfx-l3-cm@8400 {
+       gfx_l3_cm: clock@8400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "gfx_l3_cm";
                reg = <0x8400 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x8400 0x100>;
 
-               gfx_l3_clkctrl: gfx-l3-clkctrl@20 {
+               gfx_l3_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "gfx_l3_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       l4_rtc_cm: l4-rtc-cm@8500 {
+       l4_rtc_cm: clock@8500 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_rtc_cm";
                reg = <0x8500 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x8500 0x100>;
 
-               l4_rtc_clkctrl: l4-rtc-clkctrl@20 {
+               l4_rtc_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_rtc_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       per_cm: per-cm@8800 {
+       per_cm: clock@8800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "per_cm";
                reg = <0x8800 0xc00>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x8800 0xc00>;
 
-               l3_clkctrl: l3-clkctrl@20 {
+               l3_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_clkctrl";
                        reg = <0x20 0x3c>, <0x78 0x2c>;
                        #clock-cells = <2>;
                };
 
-               l3s_clkctrl: l3s-clkctrl@68 {
+               l3s_clkctrl: clock@68 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3s_clkctrl";
                        reg = <0x68 0xc>, <0x220 0x4c>;
                        #clock-cells = <2>;
                };
 
-               pruss_ocp_clkctrl: pruss-ocp-clkctrl@320 {
+               pruss_ocp_clkctrl: clock@320 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "pruss_ocp_clkctrl";
                        reg = <0x320 0x4>;
                        #clock-cells = <2>;
                };
 
-               l4ls_clkctrl: l4ls-clkctrl@420 {
+               l4ls_clkctrl: clock@420 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4ls_clkctrl";
                        reg = <0x420 0x1a4>;
                        #clock-cells = <2>;
                };
 
-               emif_clkctrl: emif-clkctrl@720 {
+               emif_clkctrl: clock@720 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "emif_clkctrl";
                        reg = <0x720 0x4>;
                        #clock-cells = <2>;
                };
 
-               dss_clkctrl: dss-clkctrl@a20 {
+               dss_clkctrl: clock@a20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dss_clkctrl";
                        reg = <0xa20 0x4>;
                        #clock-cells = <2>;
                };
 
-               cpsw_125mhz_clkctrl: cpsw-125mhz-clkctrl@b20 {
+               cpsw_125mhz_clkctrl: clock@b20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "cpsw_125mhz_clkctrl";
                        reg = <0xb20 0x4>;
                        #clock-cells = <2>;
                };
index 6dff366..47b9174 100644 (file)
@@ -18,7 +18,7 @@
 
 &qspi {
        spi-max-frequency = <96000000>;
-       m25p80@0 {
+       flash@0 {
                spi-max-frequency = <96000000>;
        };
 };
index 2e94f32..2fc9a5d 100644 (file)
 
        spi-max-frequency = <48000000>;
 
-       spi_flash: spi_flash@0 {
+       spi_flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "spansion,m25p80", "jedec,spi-nor";
index 9fcb894..c06eda8 100644 (file)
        status = "okay";
 
        spi-max-frequency = <76800000>;
-       m25p80@0 {
+       flash@0 {
                compatible = "s25fl256s1", "jedec,spi-nor";
                spi-max-frequency = <76800000>;
                reg = <0>;
index 77261a2..a7dc4c0 100644 (file)
        pinctrl-names = "default";
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "mx25l25635e", "jedec,spi-nor";
index a624b23..0abac5f 100644 (file)
        pinctrl-0 = <&spi0_pins2>;
        pinctrl-names = "default";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                /* MX25L8006E */
index 64f2ce2..e72b8ed 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q064", "jedec,spi-nor";
index 0e67946..4c40927 100644 (file)
@@ -64,7 +64,7 @@
 
        status = "disabled";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "n25q128a13", "jedec,spi-nor";
index 0a96111..3961720 100644 (file)
        pinctrl-names = "default";
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index ed3f41c..241f5d7 100644 (file)
        pinctrl-0 = <&spi1_pins>;
        status = "okay";
 
-       spi-flash@1 {
+       flash@1 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 624bbca..10ad46f 100644 (file)
        pinctrl-names = "default";
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "w25q32", "jedec,spi-nor";
index 7881df3..389d9c7 100644 (file)
        pinctrl-0 = <&spi1_pins>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 0e4613b..332f8fc 100644 (file)
        pinctrl-0 = <&spi1_pins>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p128", "jedec,spi-nor";
index d876995..2622af7 100644 (file)
        pinctrl-0 = <&spi0_pins>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "macronix,mx25l6405d", "jedec,spi-nor";
index f240018..f4878df 100644 (file)
                        #size-cells = <0>;
                        reg = <5>;
 
-                       /* ATSHA204A at address 0x64 */
+                       /* ATSHA204A-MAHDA-T crypto module */
+                       crypto@64 {
+                               compatible = "atmel,atsha204a";
+                               reg = <0x64>;
+                       };
                };
 
                i2c@6 {
        pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
        status = "okay";
 
-       spi-nor@0 {
+       flash@0 {
                compatible = "spansion,s25fl164k", "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
index a2bec07..5130ecc 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "w25q32", "jedec,spi-nor";
index 9d87325..e2ba505 100644 (file)
        pinctrl-0 = <&spi0_pins>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p128", "jedec,spi-nor";
index 328a4d6..c0efafd 100644 (file)
@@ -97,7 +97,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p128", "jedec,spi-nor";
index 363ac42..2c64bc6 100644 (file)
        /* The microsom has an optional W25Q32 on board, connected to CS0 */
        pinctrl-0 = <&spi1_pins>;
 
-       w25q32: spi-flash@0 {
+       w25q32: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "w25q32", "jedec,spi-nor";
index 0e29474..792d0a0 100644 (file)
@@ -81,7 +81,7 @@
        pinctrl-0 = <&spi1_pins>;
        pinctrl-names = "default";
 
-       spi-flash@1 {
+       flash@1 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "n25q128a13",
index fc28308..ec6cdbe 100644 (file)
@@ -79,7 +79,7 @@
        pinctrl-0 = <&spi1_pins>;
        pinctrl-names = "default";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <0>;
                compatible = "n25q128a13", "jedec,spi-nor";
index 606fd34..3e77b43 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "n25q128a13", "jedec,spi-nor";
index a022c68..c28e140 100644 (file)
@@ -15,7 +15,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 32fb21b..47b003a 100644 (file)
@@ -80,7 +80,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 21f442a..20ba5c8 100644 (file)
@@ -15,7 +15,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index f3e1a25..cab99d8 100644 (file)
@@ -80,7 +80,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index e05aee6..2caa398 100644 (file)
@@ -15,7 +15,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index c8b1355..7028482 100644 (file)
@@ -80,7 +80,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 8a3aa61..02bef8d 100644 (file)
@@ -93,7 +93,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p64";
index 4ec0ae0..d1b61da 100644 (file)
@@ -89,7 +89,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p64";
index 5d04dc6..75318fd 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p64", "jedec,spi-nor";
index b4cca50..d1d348b 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "n25q128a13", "jedec,spi-nor";
index 8480a16..36932e3 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "everspin,mr25h256";
index 809e821..5551bac 100644 (file)
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q064", "jedec,spi-nor";
index ad65be8..f9f79ed 100644 (file)
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-0 = <&spi_0>;
-                       clocks = <&axi81_clk>;
-                       clock-names = "apb_pclk";
+                       clocks = <&axi81_clk>, <&axi81_clk>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-0 = <&spi_1>;
-                       clocks = <&axi81_clk>;
-                       clock-names = "apb_pclk";
+                       clocks = <&axi81_clk>, <&axi81_clk>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
                        #size-cells = <0>;
                        interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-0 = <&spi_2>;
-                       clocks = <&axi81_clk>;
-                       clock-names = "apb_pclk";
+                       clocks = <&axi81_clk>, <&axi81_clk>;
+                       clock-names = "sspclk", "apb_pclk";
                        status = "disabled";
                };
 
index 40b9405..9b9a18b 100644 (file)
@@ -32,7 +32,6 @@
         * This is based on the unreleased schematic for the Model A+.
         *
         * 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
         */
                          "GPIO27",
                          "SDA0",
                          "SCL0",
-                         "NC", /* GPIO30 */
-                         "NC", /* GPIO31 */
+                         "", /* GPIO30 */
+                         "", /* GPIO31 */
                          "CAM_GPIO1", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
                          "PWR_LOW_N", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
                          "USB_LIMIT", /* GPIO38 */
-                         "NC", /* GPIO39 */
+                         "", /* GPIO39 */
                          "PWM0_OUT", /* GPIO40 */
                          "CAM_GPIO0", /* GPIO41 */
-                         "NC", /* GPIO42 */
-                         "NC", /* GPIO43 */
-                         "NC", /* GPIO44 */
+                         "", /* GPIO42 */
+                         "", /* GPIO43 */
+                         "", /* GPIO44 */
                          "PWM1_OUT", /* GPIO45 */
                          "HDMI_HPD_N",
                          "STATUS_LED",
index 11edb58..f664e4f 100644 (file)
@@ -26,7 +26,6 @@
         * RPI00021 sheet 02
         *
         * 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
         */
                          "SPI_MISO",
                          "SPI_MOSI",
                          "SPI_SCLK",
-                         "NC", /* GPIO12 */
-                         "NC", /* GPIO13 */
+                         "", /* GPIO12 */
+                         "", /* GPIO13 */
                          /* Serial port */
                          "TXD0",
                          "RXD0",
                          "STATUS_LED_N",
                          "GPIO17",
                          "GPIO18",
-                         "NC", /* GPIO19 */
-                         "NC", /* GPIO20 */
+                         "", /* GPIO19 */
+                         "", /* GPIO20 */
                          "GPIO21",
                          "GPIO22",
                          "GPIO23",
                          "GPIO24",
                          "GPIO25",
-                         "NC", /* GPIO26 */
+                         "", /* GPIO26 */
                          "CAM_GPIO0",
                          /* Binary number representing build/revision */
                          "CONFIG0",
                          "CONFIG1",
                          "CONFIG2",
                          "CONFIG3",
-                         "NC", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
-                         "NC", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
-                         "NC", /* GPIO38 */
-                         "NC", /* GPIO39 */
+                         "", /* GPIO32 */
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
+                         "", /* GPIO35 */
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
+                         "", /* GPIO38 */
+                         "", /* GPIO39 */
                          "PWM0_OUT",
-                         "NC", /* GPIO41 */
-                         "NC", /* GPIO42 */
-                         "NC", /* GPIO43 */
-                         "NC", /* GPIO44 */
+                         "", /* GPIO41 */
+                         "", /* GPIO42 */
+                         "", /* GPIO43 */
+                         "", /* GPIO44 */
                          "PWM1_OUT",
                          "HDMI_HPD_P",
                          "SD_CARD_DET",
index 1b435c6..248feb2 100644 (file)
@@ -34,7 +34,6 @@
         * RPI-BPLUS sheet 1
         *
         * 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
         */
                          "GPIO27",
                          "SDA0",
                          "SCL0",
-                         "NC", /* GPIO30 */
+                         "", /* GPIO30 */
                          "LAN_RUN", /* GPIO31 */
                          "CAM_GPIO1", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
                          "PWR_LOW_N", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
                          "USB_LIMIT", /* GPIO38 */
-                         "NC", /* GPIO39 */
+                         "", /* GPIO39 */
                          "PWM0_OUT", /* GPIO40 */
                          "CAM_GPIO0", /* GPIO41 */
-                         "NC", /* GPIO42 */
-                         "NC", /* GPIO43 */
-                         "ETHCLK", /* GPIO44 */
+                         "", /* GPIO42 */
+                         "", /* GPIO43 */
+                         "ETH_CLK", /* GPIO44 */
                          "PWM1_OUT", /* GPIO45 */
                          "HDMI_HPD_N",
                          "STATUS_LED",
index a23c25c..f5b66d3 100644 (file)
@@ -27,7 +27,6 @@
         * RPI00022 sheet 02
         *
         * 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
         */
                          "SPI_MISO",
                          "SPI_MOSI",
                          "SPI_SCLK",
-                         "NC", /* GPIO12 */
-                         "NC", /* GPIO13 */
+                         "", /* GPIO12 */
+                         "", /* GPIO13 */
                          /* Serial port */
                          "TXD0",
                          "RXD0",
                          "STATUS_LED_N",
                          "GPIO17",
                          "GPIO18",
-                         "NC", /* GPIO19 */
-                         "NC", /* GPIO20 */
+                         "", /* GPIO19 */
+                         "", /* GPIO20 */
                          "CAM_GPIO",
                          "GPIO22",
                          "GPIO23",
                          "GPIO24",
                          "GPIO25",
-                         "NC", /* GPIO26 */
+                         "", /* GPIO26 */
                          "GPIO27",
                          "GPIO28",
                          "GPIO29",
                          "GPIO30",
                          "GPIO31",
-                         "NC", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
-                         "NC", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
-                         "NC", /* GPIO38 */
-                         "NC", /* GPIO39 */
+                         "", /* GPIO32 */
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
+                         "", /* GPIO35 */
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
+                         "", /* GPIO38 */
+                         "", /* GPIO39 */
                          "PWM0_OUT",
-                         "NC", /* GPIO41 */
-                         "NC", /* GPIO42 */
-                         "NC", /* GPIO43 */
-                         "NC", /* GPIO44 */
+                         "", /* GPIO41 */
+                         "", /* GPIO42 */
+                         "", /* GPIO43 */
+                         "", /* GPIO44 */
                          "PWM1_OUT",
                          "HDMI_HPD_P",
                          "SD_CARD_DET",
index 1b63d6b..f589bed 100644 (file)
@@ -27,7 +27,6 @@
         * RPI00021 sheet 02
         *
         * 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
         */
                          "SPI_MISO",
                          "SPI_MOSI",
                          "SPI_SCLK",
-                         "NC", /* GPIO12 */
-                         "NC", /* GPIO13 */
+                         "", /* GPIO12 */
+                         "", /* GPIO13 */
                          /* Serial port */
                          "TXD0",
                          "RXD0",
                          "STATUS_LED_N",
                          "GPIO17",
                          "GPIO18",
-                         "NC", /* GPIO19 */
-                         "NC", /* GPIO20 */
-                         "GPIO21",
+                         "", /* GPIO19 */
+                         "", /* GPIO20 */
+                         "CAM_GPIO0",
                          "GPIO22",
                          "GPIO23",
                          "GPIO24",
                          "GPIO25",
-                         "NC", /* GPIO26 */
-                         "CAM_GPIO0",
-                         /* Binary number representing build/revision */
-                         "CONFIG0",
-                         "CONFIG1",
-                         "CONFIG2",
-                         "CONFIG3",
-                         "NC", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
-                         "NC", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
-                         "NC", /* GPIO38 */
-                         "NC", /* GPIO39 */
+                         "", /* GPIO26 */
+                         "GPIO27",
+                         "GPIO28",
+                         "GPIO29",
+                         "GPIO30",
+                         "GPIO31",
+                         "", /* GPIO32 */
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
+                         "", /* GPIO35 */
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
+                         "", /* GPIO38 */
+                         "", /* GPIO39 */
                          "PWM0_OUT",
-                         "NC", /* GPIO41 */
-                         "NC", /* GPIO42 */
-                         "NC", /* GPIO43 */
-                         "NC", /* GPIO44 */
+                         "", /* GPIO41 */
+                         "", /* GPIO42 */
+                         "", /* GPIO43 */
+                         "", /* GPIO44 */
                          "PWM1_OUT",
                          "HDMI_HPD_P",
                          "SD_CARD_DET",
index a75c882..87958a9 100644 (file)
@@ -13,7 +13,6 @@
         * 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
         */
index 243236b..596bb1e 100644 (file)
@@ -39,7 +39,6 @@
         * 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
         */
                          "GPIO27",
                          "SDA0",
                          "SCL0",
-                         "NC", /* GPIO30 */
-                         "NC", /* GPIO31 */
-                         "NC", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
-                         "NC", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
-                         "NC", /* GPIO38 */
-                         "NC", /* GPIO39 */
+                         /* Used by BT module */
+                         "CTS0",
+                         "RTS0",
+                         "TXD0",
+                         "RXD0",
+                         /* Used by Wifi */
+                         "SD1_CLK",
+                         "SD1_CMD",
+                         "SD1_DATA0",
+                         "SD1_DATA1",
+                         "SD1_DATA2",
+                         "SD1_DATA3",
                          "CAM_GPIO1", /* GPIO40 */
                          "WL_ON", /* GPIO41 */
-                         "NC", /* GPIO42 */
+                         "", /* GPIO42 */
                          "WIFI_CLK", /* GPIO43 */
                          "CAM_GPIO0", /* GPIO44 */
                          "BT_ON", /* GPIO45 */
index 6f9b3a9..a65c2bc 100644 (file)
@@ -29,7 +29,6 @@
         * 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
         */
                          "GPIO27",
                          "SDA0",
                          "SCL0",
-                         "NC", /* GPIO30 */
-                         "NC", /* GPIO31 */
+                         "", /* GPIO30 */
+                         "", /* GPIO31 */
                          "CAM_GPIO1", /* GPIO32 */
-                         "NC", /* GPIO33 */
-                         "NC", /* GPIO34 */
-                         "NC", /* GPIO35 */
-                         "NC", /* GPIO36 */
-                         "NC", /* GPIO37 */
-                         "NC", /* GPIO38 */
-                         "NC", /* GPIO39 */
-                         "NC", /* GPIO40 */
+                         "", /* GPIO33 */
+                         "", /* GPIO34 */
+                         "", /* GPIO35 */
+                         "", /* GPIO36 */
+                         "", /* GPIO37 */
+                         "", /* GPIO38 */
+                         "", /* GPIO39 */
+                         "", /* GPIO40 */
                          "CAM_GPIO0", /* GPIO41 */
-                         "NC", /* GPIO42 */
-                         "NC", /* GPIO43 */
-                         "NC", /* GPIO44 */
-                         "NC", /* GPIO45 */
+                         "", /* GPIO42 */
+                         "", /* GPIO43 */
+                         "", /* GPIO44 */
+                         "", /* GPIO45 */
                          "HDMI_HPD_N",
                          "STATUS_LED_N",
                          /* Used by SD Card */
index d8af8ee..3635502 100644 (file)
@@ -34,7 +34,6 @@
         * 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
         */
@@ -83,7 +82,7 @@
                          "CAM_GPIO0",
                          "SMPS_SCL",
                          "SMPS_SDA",
-                         "ETHCLK",
+                         "ETH_CLK",
                          "PWM1_OUT",
                          "HDMI_HPD_N",
                          "STATUS_LED",
index d73daf5..f7222a2 100644 (file)
@@ -55,7 +55,6 @@
         * This is mostly 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
         */
index e12938b..ec721d3 100644 (file)
@@ -45,7 +45,7 @@
                #gpio-cells = <2>;
                gpio-line-names = "BT_ON",
                                  "WL_ON",
-                                 "STATUS_LED_R",
+                                 "PWR_LED_R",
                                  "LAN_RUN",
                                  "",
                                  "CAM_GPIO0",
@@ -61,7 +61,6 @@
         * 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
         */
                          "SD1_DATA3",
                          "PWM0_OUT",
                          "PWM1_OUT",
-                         "ETHCLK",
+                         "ETH_CLK",
                          "WIFI_CLK",
                          "SDA0",
                          "SCL0",
index 42b5383..fb6a417 100644 (file)
@@ -54,7 +54,6 @@
         * 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
         */
                          "SD1_DATA3",
                          "PWM0_OUT",
                          "PWM1_OUT",
-                         "ETHCLK",
+                         "ETH_CLK",
                          "WIFI_CLK",
                          "SDA0",
                          "SCL0",
index 588d941..cf84e69 100644 (file)
@@ -13,7 +13,6 @@
         * 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
         */
@@ -63,8 +62,8 @@
                          "GPIO43",
                          "GPIO44",
                          "GPIO45",
-                         "GPIO46",
-                         "GPIO47",
+                         "SMPS_SCL",
+                         "SMPS_SDA",
                          /* Used by eMMC */
                          "SD_CLK_R",
                          "SD_CMD_R",
index 828a205..f57b4ca 100644 (file)
                #gpio-cells = <2>;
                gpio-line-names = "HDMI_HPD_N",
                                  "EMMC_EN_N",
-                                 "NC",
-                                 "NC",
-                                 "NC",
-                                 "NC",
-                                 "NC",
-                                 "NC";
+                                 "",
+                                 "",
+                                 "",
+                                 "",
+                                 "",
+                                 "";
                status = "okay";
        };
 };
index 967e081..882b138 100644 (file)
@@ -12,7 +12,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@1 {
+               ethernet: ethernet@1 {
                        compatible = "usb424,ec00";
                        reg = <1>;
                };
index dc7ae77..4273b90 100644 (file)
@@ -11,7 +11,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@1 {
+               ethernet: ethernet@1 {
                        compatible = "usb424,ec00";
                        reg = <1>;
                };
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp-common.dtsi
new file mode 100644 (file)
index 0000000..d659e40
--- /dev/null
@@ -0,0 +1,192 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Broadcom BCM470X / BCM5301X ARM platform code.
+ * DTS for Buffalo WZR-1166DHP and WZR-1166DHP2
+ *
+ * Copyright (C) 2014 RafaÅ‚ MiÅ‚ecki <zajec5@gmail.com>
+ * Copyright (C) 2022 SHIMAMOTO Takayoshi <takayoshi.shimamoto.360@gmail.com>
+ */
+
+
+#include "bcm4708.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+#include <dt-bindings/leds/common.h>
+
+/ {
+       spi {
+               compatible = "spi-gpio";
+               num-chipselects = <1>;
+               gpio-sck = <&chipcommon 7 0>;
+               gpio-mosi = <&chipcommon 4 0>;
+               cs-gpios = <&chipcommon 6 0>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               hc595: gpio_spi@0 {
+                       compatible = "fairchild,74hc595";
+                       reg = <0>;
+                       registers-number = <1>;
+                       spi-max-frequency = <100000>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               usb {
+                       /* label = "bcm53xx:blue:usb"; */
+                       function = LED_FUNCTION_USB;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&hc595 0 GPIO_ACTIVE_HIGH>;
+                       trigger-sources = <&ohci_port1>, <&ehci_port1>,
+                                         <&xhci_port1>, <&ohci_port2>,
+                                         <&ehci_port2>;
+                       linux,default-trigger = "usbport";
+               };
+
+               power0 {
+                       /* label = "bcm53xx:red:power"; */
+                       function = LED_FUNCTION_FAULT;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
+               };
+
+               power1 {
+                       /* label = "bcm53xx:white:power"; */
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_WHITE>;
+                       gpios = <&hc595 2 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               router0 {
+                       /*  label = "bcm53xx:blue:router"; */
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               router1 {
+                       /* label = "bcm53xx:amber:router"; */
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_AMBER>;
+                       gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
+               };
+
+               wan {
+                       /* label = "bcm53xx:blue:wan"; */
+                       function = LED_FUNCTION_WAN;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               wireless0 {
+                       /* label = "bcm53xx:blue:wireless"; */
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
+               };
+
+               wireless1 {
+                       /* label = "bcm53xx:amber:wireless"; */
+                       function = LED_FUNCTION_WLAN;
+                       color = <LED_COLOR_ID_AMBER>;
+                       gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               restart {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               aoss {
+                       label = "AOSS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
+               };
+
+               /* Commit mode set by switch? */
+               mode {
+                       label = "Mode";
+                       linux,code = <KEY_SETUP>;
+                       gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
+               };
+
+               /* Switch: AP mode */
+               sw_ap {
+                       label = "AP";
+                       linux,code = <BTN_0>;
+                       gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+               };
+
+               eject {
+                       label = "USB eject";
+                       linux,code = <KEY_EJECTCD>;
+                       gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3 {
+       vcc-gpio = <&chipcommon 10 GPIO_ACTIVE_LOW>;
+};
+
+&spi_nor {
+       status = "okay";
+};
+
+&usb3_phy {
+       status = "okay";
+};
+
+&srab {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       reg = <0>;
+                       label = "lan1";
+               };
+
+               port@1 {
+                       reg = <1>;
+                       label = "lan2";
+               };
+
+               port@2 {
+                       reg = <2>;
+                       label = "lan3";
+               };
+
+               port@3 {
+                       reg = <3>;
+                       label = "lan4";
+               };
+
+               port@4 {
+                       reg = <4>;
+                       label = "wan";
+               };
+
+               port@5 {
+                       reg = <5>;
+                       label = "cpu";
+                       ethernet = <&gmac0>;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp.dts
new file mode 100644 (file)
index 0000000..8e50626
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Device Tree Bindigs for Buffalo WZR-1166DHP
+ *
+ * Copyright (C) 2022 SHIMAMOTO Takayoshi <takayoshi.shimamoto.360@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm4708-buffalo-wzr-1166dhp-common.dtsi"
+
+/ {
+       compatible = "buffalo,wzr-1166dhp", "brcm,bcm4708";
+       model = "Buffalo WZR-1166DHP";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x08000000>,
+                     <0x88000000 0x18000000>;
+       };
+
+};
diff --git a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1166dhp2.dts
new file mode 100644 (file)
index 0000000..5961290
--- /dev/null
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Device Tree Bindigs for Buffalo WZR-1166DHP2
+ *
+ * Copyright (C) 2022 SHIMAMOTO Takayoshi <takayoshi.shimamoto.360@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm4708-buffalo-wzr-1166dhp-common.dtsi"
+
+/ {
+       compatible = "buffalo,wzr-1166dhp2", "brcm,bcm4708";
+       model = "Buffalo WZR-1166DHP2";
+
+       chosen {
+               bootargs = "console=ttyS0,115200";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x00000000 0x08000000>,
+                     <0x88000000 0x08000000>;
+       };
+
+};
index 82f9629..d850375 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright (C) 2021 Arınç ÃœNAL <arinc.unal@arinc9.com>
+ * Copyright (C) 2021-2022 Arınç ÃœNAL <arinc.unal@arinc9.com>
  */
 
 /dts-v1/;
@@ -25,6 +25,9 @@
        nvram@1c080000 {
                compatible = "brcm,nvram";
                reg = <0x1c080000 0x00180000>;
+
+               et1macaddr: et1macaddr {
+               };
        };
 
        leds {
        dsa,member = <0 0>;
 
        ports {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
                port@0 {
                        reg = <0>;
                        label = "lan4";
                sw0_p5: port@5 {
                        reg = <5>;
                        label = "extsw";
+                       phy-mode = "rgmii";
 
                        fixed-link {
                                speed = <1000>;
                        reg = <8>;
                        ethernet = <&gmac2>;
                        label = "cpu";
-                       status = "disabled";
 
                        fixed-link {
                                speed = <1000>;
        };
 };
 
+&gmac0 {
+       status = "disabled";
+};
+
+&gmac1 {
+       nvmem-cells = <&et1macaddr>;
+       nvmem-cell-names = "mac-address";
+};
+
 &usb2 {
        vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
 };
diff --git a/arch/arm/boot/dts/bcm47622.dtsi b/arch/arm/boot/dts/bcm47622.dtsi
new file mode 100644 (file)
index 0000000..c016e12
--- /dev/null
@@ -0,0 +1,126 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2022 Broadcom Ltd.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       compatible = "brcm,bcm47622", "brcm,bcmbca";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       interrupt-parent = <&gic>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               CA7_0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x0>;
+                       next-level-cache = <&L2_0>;
+                       enable-method = "psci";
+               };
+
+               CA7_1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x1>;
+                       next-level-cache = <&L2_0>;
+                       enable-method = "psci";
+               };
+               CA7_2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x2>;
+                       next-level-cache = <&L2_0>;
+                       enable-method = "psci";
+               };
+               CA7_3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a7";
+                       reg = <0x3>;
+                       next-level-cache = <&L2_0>;
+                       enable-method = "psci";
+               };
+               L2_0: l2-cache0 {
+                       compatible = "cache";
+               };
+       };
+
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                       <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                       <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
+                       <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
+               arm,cpu-registers-not-fw-configured;
+       };
+
+       pmu: pmu {
+               compatible = "arm,cortex-a7-pmu";
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                       <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-affinity = <&CA7_0>, <&CA7_1>,
+                       <&CA7_2>, <&CA7_3>;
+       };
+
+       clocks: clocks {
+               periph_clk: periph-clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <200000000>;
+               };
+               uart_clk: uart-clk {
+                       compatible = "fixed-factor-clock";
+                       #clock-cells = <0>;
+                       clocks = <&periph_clk>;
+                       clock-div = <4>;
+                       clock-mult = <1>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-0.2";
+               method = "smc";
+               cpu_off = <1>;
+               cpu_on = <2>;
+       };
+
+       axi@81000000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0x81000000 0x818000>;
+
+               gic: interrupt-controller@1000 {
+                       compatible = "arm,cortex-a7-gic";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x1000 0x1000>,
+                               <0x2000 0x2000>;
+               };
+       };
+
+       bus@ff800000 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0xff800000 0x800000>;
+
+               uart0: serial@12000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x12000 0x1000>;
+                       interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uart_clk>, <&uart_clk>;
+                       clock-names = "uartclk", "apb_pclk";
+                       status = "disabled";
+               };
+       };
+};
index 66c64a6..daca63f 100644 (file)
@@ -13,7 +13,7 @@
 #include <dt-bindings/leds/common.h>
 
 / {
-       compatible = "meraki,mr32", "brcm,brcm53016", "brcm,bcm4708";
+       compatible = "meraki,mr32", "brcm,bcm53016", "brcm,bcm4708";
        model = "Meraki MR32";
 
        chosen {
index 603c700..65f8a75 100644 (file)
                                reg = <0x180 0x4>;
                        };
 
-                       pinctrl: pin-controller@1c0 {
+                       pinctrl: pinctrl@1c0 {
                                compatible = "brcm,bcm4708-pinmux";
                                reg = <0x1c0 0x24>;
                                reg-names = "cru_gpio_control";
index 2e7fda9..975f854 100644 (file)
@@ -34,7 +34,7 @@
        status = "okay";
        bspi-sel = <0>;
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "m25p80";
                reg = <0>;
                #address-cells = <1>;
diff --git a/arch/arm/boot/dts/bcm947622.dts b/arch/arm/boot/dts/bcm947622.dts
new file mode 100644 (file)
index 0000000..6f08372
--- /dev/null
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2019 Broadcom Ltd.
+ */
+
+/dts-v1/;
+
+#include "bcm47622.dtsi"
+
+/ {
+       model = "Broadcom BCM947622 Reference Board";
+       compatible = "brcm,bcm947622", "brcm,bcm47622", "brcm,bcmbca";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x08000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
index 52feca0..dd63a14 100644 (file)
@@ -37,7 +37,7 @@
 
 / {
        model = "NorthStar Enterprise Router (BCM953012ER)";
-       compatible = "brcm,bcm953012er", "brcm,brcm53012", "brcm,bcm4708";
+       compatible = "brcm,bcm953012er", "brcm,bcm53012", "brcm,bcm4708";
 
        memory@0 {
                device_type = "memory";
index 9140be7..b070b69 100644 (file)
@@ -37,7 +37,7 @@
 
 / {
        model = "NorthStar HR (BCM953012HR)";
-       compatible = "brcm,bcm953012hr", "brcm,brcm53012", "brcm,bcm4708";
+       compatible = "brcm,bcm953012hr", "brcm,bcm53012", "brcm,bcm4708";
 
        aliases {
                ethernet0 = &gmac0;
index de40bd5..f1e6bca 100644 (file)
@@ -36,7 +36,7 @@
 
 / {
        model = "NorthStar SVK (BCM953012K)";
-       compatible = "brcm,bcm953012k", "brcm,brcm53012", "brcm,bcm4708";
+       compatible = "brcm,bcm953012k", "brcm,bcm53012", "brcm,bcm4708";
 
        aliases {
                serial0 = &uart0;
index 60376b6..15f0236 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index 8eeb319..9b9c225 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index dc86d5a..ca93114 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index c457e53..9db3c85 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index c068719..32786e7 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index b22fc66..74263d9 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index 0183f89..69ebc7a 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index 007e347..e96bc3f 100644 (file)
 &qspi {
        status = "okay";
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index 7702e04..a926301 100644 (file)
                                interrupts = <17>;
                                interrupt-names = "glue";
                                #dma-cells = <2>;
+                               /* For backwards compatibility: */
                                #dma-channels = <30>;
+                               dma-channels = <30>;
                                #dma-requests = <256>;
+                               dma-requests = <256>;
                        };
                };
 
index a9e7274..eb0a95d 100644 (file)
                                interrupts = <17>;
                                interrupt-names = "glue";
                                #dma-cells = <2>;
+                               /* For backwards compatibility: */
                                #dma-channels = <30>;
+                               dma-channels = <30>;
                                #dma-requests = <256>;
+                               dma-requests = <256>;
                        };
                };
 
index 3e1584e..2639b9f 100644 (file)
        status = "okay";
 
        /* spi0.0: 4M Flash Winbond W25Q32BV */
-       spi-flash@0 {
+       flash@0 {
                compatible = "st,w25q32";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 273f12c..a0e8996 100644 (file)
@@ -62,7 +62,7 @@
        status = "okay";
 
        /* spi0.0: 4M Flash Macronix MX25L3205D */
-       spi-flash@0 {
+       flash@0 {
                compatible = "st,m25l3205d";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 826026c..1e81d1b 100644 (file)
@@ -79,7 +79,7 @@
        status = "okay";
 
        /* spi0.0: 2M Flash Macronix MX25L1605D */
-       spi-flash@0 {
+       flash@0 {
                compatible = "st,m25l1605d";
                spi-max-frequency = <86000000>;
                reg = <0>;
index 1754a62..c1912dc 100644 (file)
@@ -27,7 +27,7 @@
        status = "okay";
 
        /* spi0.0: 4M Flash ST-M25P32-VMF6P */
-       spi-flash@0 {
+       flash@0 {
                compatible = "st,m25p32";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 0f71a9f..68c43eb 100644 (file)
        status = "okay";
 
        spi-max-frequency = <76800000>;
-       m25p80@0 {
+       flash@0 {
                compatible = "s25fl256s1";
                spi-max-frequency = <76800000>;
                reg = <0>;
index f128252..8948e10 100644 (file)
        status = "okay";
 
        spi-max-frequency = <76800000>;
-       m25p80@0 {
+       flash@0 {
                compatible = "s25fl256s1";
                spi-max-frequency = <76800000>;
                reg = <0>;
index e2b7fcb..57868ac 100644 (file)
 
 &qspi {
        spi-max-frequency = <96000000>;
-       m25p80@0 {
+       flash@0 {
                spi-max-frequency = <96000000>;
        };
 };
index 2365554..04a7a6d 100644 (file)
  * Copyright (C) 2013 Texas Instruments, Inc.
  */
 &cm_core_aon_clocks {
-       atl_clkin0_ck: atl_clkin0_ck {
+       atl_clkin0_ck: clock-atl-clkin0 {
                #clock-cells = <0>;
                compatible = "ti,dra7-atl-clock";
+               clock-output-names = "atl_clkin0_ck";
                clocks = <&atl_clkctrl DRA7_ATL_ATL_CLKCTRL 26>;
        };
 
-       atl_clkin1_ck: atl_clkin1_ck {
+       atl_clkin1_ck: clock-atl-clkin1 {
                #clock-cells = <0>;
                compatible = "ti,dra7-atl-clock";
+               clock-output-names = "atl_clkin1_ck";
                clocks = <&atl_clkctrl DRA7_ATL_ATL_CLKCTRL 26>;
        };
 
-       atl_clkin2_ck: atl_clkin2_ck {
+       atl_clkin2_ck: clock-atl-clkin2 {
                #clock-cells = <0>;
                compatible = "ti,dra7-atl-clock";
+               clock-output-names = "atl_clkin2_ck";
                clocks = <&atl_clkctrl DRA7_ATL_ATL_CLKCTRL 26>;
        };
 
-       atl_clkin3_ck: atl_clkin3_ck {
+       atl_clkin3_ck: clock-atl-clkin3 {
                #clock-cells = <0>;
                compatible = "ti,dra7-atl-clock";
+               clock-output-names = "atl_clkin3_ck";
                clocks = <&atl_clkctrl DRA7_ATL_ATL_CLKCTRL 26>;
        };
 
-       hdmi_clkin_ck: hdmi_clkin_ck {
+       hdmi_clkin_ck: clock-hdmi-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "hdmi_clkin_ck";
                clock-frequency = <0>;
        };
 
-       mlb_clkin_ck: mlb_clkin_ck {
+       mlb_clkin_ck: clock-mlb-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "mlb_clkin_ck";
                clock-frequency = <0>;
        };
 
-       mlbp_clkin_ck: mlbp_clkin_ck {
+       mlbp_clkin_ck: clock-mlbp-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "mlbp_clkin_ck";
                clock-frequency = <0>;
        };
 
-       pciesref_acs_clk_ck: pciesref_acs_clk_ck {
+       pciesref_acs_clk_ck: clock-pciesref-acs {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "pciesref_acs_clk_ck";
                clock-frequency = <100000000>;
        };
 
-       ref_clkin0_ck: ref_clkin0_ck {
+       ref_clkin0_ck: clock-ref-clkin0 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "ref_clkin0_ck";
                clock-frequency = <0>;
        };
 
-       ref_clkin1_ck: ref_clkin1_ck {
+       ref_clkin1_ck: clock-ref-clkin1 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "ref_clkin1_ck";
                clock-frequency = <0>;
        };
 
-       ref_clkin2_ck: ref_clkin2_ck {
+       ref_clkin2_ck: clock-ref-clkin2 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "ref_clkin2_ck";
                clock-frequency = <0>;
        };
 
-       ref_clkin3_ck: ref_clkin3_ck {
+       ref_clkin3_ck: clock-ref-clkin3 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "ref_clkin3_ck";
                clock-frequency = <0>;
        };
 
-       rmii_clk_ck: rmii_clk_ck {
+       rmii_clk_ck: clock-rmii {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "rmii_clk_ck";
                clock-frequency = <0>;
        };
 
-       sdvenc_clkin_ck: sdvenc_clkin_ck {
+       sdvenc_clkin_ck: clock-sdvenc-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "sdvenc_clkin_ck";
                clock-frequency = <0>;
        };
 
-       secure_32k_clk_src_ck: secure_32k_clk_src_ck {
+       secure_32k_clk_src_ck: clock-secure-32k-clk-src {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "secure_32k_clk_src_ck";
                clock-frequency = <32768>;
        };
 
-       sys_clk32_crystal_ck: sys_clk32_crystal_ck {
+       sys_clk32_crystal_ck: clock-sys-clk32-crystal {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "sys_clk32_crystal_ck";
                clock-frequency = <32768>;
        };
 
-       sys_clk32_pseudo_ck: sys_clk32_pseudo_ck {
+       sys_clk32_pseudo_ck: clock-sys-clk32-pseudo {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "sys_clk32_pseudo_ck";
                clocks = <&sys_clkin1>;
                clock-mult = <1>;
                clock-div = <610>;
        };
 
-       virt_12000000_ck: virt_12000000_ck {
+       virt_12000000_ck: clock-virt-12000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_12000000_ck";
                clock-frequency = <12000000>;
        };
 
-       virt_13000000_ck: virt_13000000_ck {
+       virt_13000000_ck: clock-virt-13000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_13000000_ck";
                clock-frequency = <13000000>;
        };
 
-       virt_16800000_ck: virt_16800000_ck {
+       virt_16800000_ck: clock-virt-16800000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_16800000_ck";
                clock-frequency = <16800000>;
        };
 
-       virt_19200000_ck: virt_19200000_ck {
+       virt_19200000_ck: clock-virt-19200000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_19200000_ck";
                clock-frequency = <19200000>;
        };
 
-       virt_20000000_ck: virt_20000000_ck {
+       virt_20000000_ck: clock-virt-20000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_20000000_ck";
                clock-frequency = <20000000>;
        };
 
-       virt_26000000_ck: virt_26000000_ck {
+       virt_26000000_ck: clock-virt-26000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_26000000_ck";
                clock-frequency = <26000000>;
        };
 
-       virt_27000000_ck: virt_27000000_ck {
+       virt_27000000_ck: clock-virt-27000000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_27000000_ck";
                clock-frequency = <27000000>;
        };
 
-       virt_38400000_ck: virt_38400000_ck {
+       virt_38400000_ck: clock-virt-38400000 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_38400000_ck";
                clock-frequency = <38400000>;
        };
 
-       sys_clkin2: sys_clkin2 {
+       sys_clkin2: clock-sys-clkin2 {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "sys_clkin2";
                clock-frequency = <22579200>;
        };
 
-       usb_otg_clkin_ck: usb_otg_clkin_ck {
+       usb_otg_clkin_ck: clock-usb-otg-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "usb_otg_clkin_ck";
                clock-frequency = <0>;
        };
 
-       video1_clkin_ck: video1_clkin_ck {
+       video1_clkin_ck: clock-video1-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "video1_clkin_ck";
                clock-frequency = <0>;
        };
 
-       video1_m2_clkin_ck: video1_m2_clkin_ck {
+       video1_m2_clkin_ck: clock-video1-m2-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "video1_m2_clkin_ck";
                clock-frequency = <0>;
        };
 
-       video2_clkin_ck: video2_clkin_ck {
+       video2_clkin_ck: clock-video2-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "video2_clkin_ck";
                clock-frequency = <0>;
        };
 
-       video2_m2_clkin_ck: video2_m2_clkin_ck {
+       video2_m2_clkin_ck: clock-video2-m2-clkin {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "video2_m2_clkin_ck";
                clock-frequency = <0>;
        };
 
-       dpll_abe_ck: dpll_abe_ck@1e0 {
+       dpll_abe_ck: clock@1e0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-m4xen-clock";
+               clock-output-names = "dpll_abe_ck";
                clocks = <&abe_dpll_clk_mux>, <&abe_dpll_bypass_clk_mux>;
                reg = <0x01e0>, <0x01e4>, <0x01ec>, <0x01e8>;
        };
 
-       dpll_abe_x2_ck: dpll_abe_x2_ck {
+       dpll_abe_x2_ck: clock-dpll-abe-x2 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_abe_x2_ck";
                clocks = <&dpll_abe_ck>;
        };
 
-       dpll_abe_m2x2_ck: dpll_abe_m2x2_ck@1f0 {
+       dpll_abe_m2x2_ck: clock-dpll-abe-m2x2-8@1f0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m2x2_ck";
                clocks = <&dpll_abe_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       abe_clk: abe_clk@108 {
+       abe_clk: clock-abe@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_clk";
                clocks = <&dpll_abe_m2x2_ck>;
                ti,max-div = <4>;
                reg = <0x0108>;
                ti,index-power-of-two;
        };
 
-       dpll_abe_m2_ck: dpll_abe_m2_ck@1f0 {
+       dpll_abe_m2_ck: clock-dpll-abe-m2-8@1f0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m2_ck";
                clocks = <&dpll_abe_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_abe_m3x2_ck: dpll_abe_m3x2_ck@1f4 {
+       dpll_abe_m3x2_ck: clock-dpll-abe-m3x2-8@1f4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m3x2_ck";
                clocks = <&dpll_abe_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_byp_mux: dpll_core_byp_mux@12c {
+       dpll_core_byp_mux: clock-dpll-core-byp-mux-23@12c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_core_byp_mux";
                clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
                ti,bit-shift = <23>;
                reg = <0x012c>;
        };
 
-       dpll_core_ck: dpll_core_ck@120 {
+       dpll_core_ck: clock@120 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-core-clock";
+               clock-output-names = "dpll_core_ck";
                clocks = <&sys_clkin1>, <&dpll_core_byp_mux>;
                reg = <0x0120>, <0x0124>, <0x012c>, <0x0128>;
        };
 
-       dpll_core_x2_ck: dpll_core_x2_ck {
+       dpll_core_x2_ck: clock-dpll-core-x2 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_core_x2_ck";
                clocks = <&dpll_core_ck>;
        };
 
-       dpll_core_h12x2_ck: dpll_core_h12x2_ck@13c {
+       dpll_core_h12x2_ck: clock-dpll-core-h12x2-8@13c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h12x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       mpu_dpll_hs_clk_div: mpu_dpll_hs_clk_div {
+       mpu_dpll_hs_clk_div: clock-mpu-dpll-hs-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mpu_dpll_hs_clk_div";
                clocks = <&dpll_core_h12x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_mpu_ck: dpll_mpu_ck@160 {
+       dpll_mpu_ck: clock@160 {
                #clock-cells = <0>;
                compatible = "ti,omap5-mpu-dpll-clock";
+               clock-output-names = "dpll_mpu_ck";
                clocks = <&sys_clkin1>, <&mpu_dpll_hs_clk_div>;
                reg = <0x0160>, <0x0164>, <0x016c>, <0x0168>;
        };
 
-       dpll_mpu_m2_ck: dpll_mpu_m2_ck@170 {
+       dpll_mpu_m2_ck: clock-dpll-mpu-m2-8@170 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_mpu_m2_ck";
                clocks = <&dpll_mpu_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       mpu_dclk_div: mpu_dclk_div {
+       mpu_dclk_div: clock-mpu-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mpu_dclk_div";
                clocks = <&dpll_mpu_m2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dsp_dpll_hs_clk_div: dsp_dpll_hs_clk_div {
+       dsp_dpll_hs_clk_div: clock-dsp-dpll-hs-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dsp_dpll_hs_clk_div";
                clocks = <&dpll_core_h12x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_dsp_byp_mux: dpll_dsp_byp_mux@240 {
+       dpll_dsp_byp_mux: clock-dpll-dsp-byp-mux-23@240 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_dsp_byp_mux";
                clocks = <&sys_clkin1>, <&dsp_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x0240>;
        };
 
-       dpll_dsp_ck: dpll_dsp_ck@234 {
+       dpll_dsp_ck: clock@234 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_dsp_ck";
                clocks = <&sys_clkin1>, <&dpll_dsp_byp_mux>;
                reg = <0x0234>, <0x0238>, <0x0240>, <0x023c>;
                assigned-clocks = <&dpll_dsp_ck>;
                assigned-clock-rates = <600000000>;
        };
 
-       dpll_dsp_m2_ck: dpll_dsp_m2_ck@244 {
+       dpll_dsp_m2_ck: clock-dpll-dsp-m2-8@244 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_dsp_m2_ck";
                clocks = <&dpll_dsp_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                assigned-clock-rates = <600000000>;
        };
 
-       iva_dpll_hs_clk_div: iva_dpll_hs_clk_div {
+       iva_dpll_hs_clk_div: clock-iva-dpll-hs-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "iva_dpll_hs_clk_div";
                clocks = <&dpll_core_h12x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_iva_byp_mux: dpll_iva_byp_mux@1ac {
+       dpll_iva_byp_mux: clock-dpll-iva-byp-mux-23@1ac {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_iva_byp_mux";
                clocks = <&sys_clkin1>, <&iva_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x01ac>;
        };
 
-       dpll_iva_ck: dpll_iva_ck@1a0 {
+       dpll_iva_ck: clock@1a0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_iva_ck";
                clocks = <&sys_clkin1>, <&dpll_iva_byp_mux>;
                reg = <0x01a0>, <0x01a4>, <0x01ac>, <0x01a8>;
                assigned-clocks = <&dpll_iva_ck>;
                assigned-clock-rates = <1165000000>;
        };
 
-       dpll_iva_m2_ck: dpll_iva_m2_ck@1b0 {
+       dpll_iva_m2_ck: clock-dpll-iva-m2-8@1b0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_iva_m2_ck";
                clocks = <&dpll_iva_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                assigned-clock-rates = <388333334>;
        };
 
-       iva_dclk: iva_dclk {
+       iva_dclk: clock-iva-dclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "iva_dclk";
                clocks = <&dpll_iva_m2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_gpu_byp_mux: dpll_gpu_byp_mux@2e4 {
+       dpll_gpu_byp_mux: clock-dpll-gpu-byp-mux-23@2e4 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_gpu_byp_mux";
                clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
                ti,bit-shift = <23>;
                reg = <0x02e4>;
        };
 
-       dpll_gpu_ck: dpll_gpu_ck@2d8 {
+       dpll_gpu_ck: clock@2d8 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_gpu_ck";
                clocks = <&sys_clkin1>, <&dpll_gpu_byp_mux>;
                reg = <0x02d8>, <0x02dc>, <0x02e4>, <0x02e0>;
                assigned-clocks = <&dpll_gpu_ck>;
                assigned-clock-rates = <1277000000>;
        };
 
-       dpll_gpu_m2_ck: dpll_gpu_m2_ck@2e8 {
+       dpll_gpu_m2_ck: clock-dpll-gpu-m2-8@2e8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_gpu_m2_ck";
                clocks = <&dpll_gpu_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                assigned-clock-rates = <425666667>;
        };
 
-       dpll_core_m2_ck: dpll_core_m2_ck@130 {
+       dpll_core_m2_ck: clock-dpll-core-m2-8@130 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m2_ck";
                clocks = <&dpll_core_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       core_dpll_out_dclk_div: core_dpll_out_dclk_div {
+       core_dpll_out_dclk_div: clock-core-dpll-out-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "core_dpll_out_dclk_div";
                clocks = <&dpll_core_m2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_ddr_byp_mux: dpll_ddr_byp_mux@21c {
+       dpll_ddr_byp_mux: clock-dpll-ddr-byp-mux-23@21c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_ddr_byp_mux";
                clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
                ti,bit-shift = <23>;
                reg = <0x021c>;
        };
 
-       dpll_ddr_ck: dpll_ddr_ck@210 {
+       dpll_ddr_ck: clock@210 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_ddr_ck";
                clocks = <&sys_clkin1>, <&dpll_ddr_byp_mux>;
                reg = <0x0210>, <0x0214>, <0x021c>, <0x0218>;
        };
 
-       dpll_ddr_m2_ck: dpll_ddr_m2_ck@220 {
+       dpll_ddr_m2_ck: clock-dpll-ddr-m2-8@220 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_ddr_m2_ck";
                clocks = <&dpll_ddr_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_gmac_byp_mux: dpll_gmac_byp_mux@2b4 {
+       dpll_gmac_byp_mux: clock-dpll-gmac-byp-mux-23@2b4 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_gmac_byp_mux";
                clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
                ti,bit-shift = <23>;
                reg = <0x02b4>;
        };
 
-       dpll_gmac_ck: dpll_gmac_ck@2a8 {
+       dpll_gmac_ck: clock@2a8 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_gmac_ck";
                clocks = <&sys_clkin1>, <&dpll_gmac_byp_mux>;
                reg = <0x02a8>, <0x02ac>, <0x02b4>, <0x02b0>;
        };
 
-       dpll_gmac_m2_ck: dpll_gmac_m2_ck@2b8 {
+       dpll_gmac_m2_ck: clock-dpll-gmac-m2-8@2b8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_gmac_m2_ck";
                clocks = <&dpll_gmac_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       video2_dclk_div: video2_dclk_div {
+       video2_dclk_div: clock-video2-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "video2_dclk_div";
                clocks = <&video2_m2_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       video1_dclk_div: video1_dclk_div {
+       video1_dclk_div: clock-video1-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "video1_dclk_div";
                clocks = <&video1_m2_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       hdmi_dclk_div: hdmi_dclk_div {
+       hdmi_dclk_div: clock-hdmi-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "hdmi_dclk_div";
                clocks = <&hdmi_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       per_dpll_hs_clk_div: per_dpll_hs_clk_div {
+       per_dpll_hs_clk_div: clock-per-dpll-hs-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "per_dpll_hs_clk_div";
                clocks = <&dpll_abe_m3x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       usb_dpll_hs_clk_div: usb_dpll_hs_clk_div {
+       usb_dpll_hs_clk_div: clock-usb-dpll-hs-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "usb_dpll_hs_clk_div";
                clocks = <&dpll_abe_m3x2_ck>;
                clock-mult = <1>;
                clock-div = <3>;
        };
 
-       eve_dpll_hs_clk_div: eve_dpll_hs_clk_div {
+       eve_dpll_hs_clk_div: clock-eve-dpll-hs-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "eve_dpll_hs_clk_div";
                clocks = <&dpll_core_h12x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_eve_byp_mux: dpll_eve_byp_mux@290 {
+       dpll_eve_byp_mux: clock-dpll-eve-byp-mux-23@290 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_eve_byp_mux";
                clocks = <&sys_clkin1>, <&eve_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x0290>;
        };
 
-       dpll_eve_ck: dpll_eve_ck@284 {
+       dpll_eve_ck: clock@284 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_eve_ck";
                clocks = <&sys_clkin1>, <&dpll_eve_byp_mux>;
                reg = <0x0284>, <0x0288>, <0x0290>, <0x028c>;
        };
 
-       dpll_eve_m2_ck: dpll_eve_m2_ck@294 {
+       dpll_eve_m2_ck: clock-dpll-eve-m2-8@294 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_eve_m2_ck";
                clocks = <&dpll_eve_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       eve_dclk_div: eve_dclk_div {
+       eve_dclk_div: clock-eve-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "eve_dclk_div";
                clocks = <&dpll_eve_m2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_core_h13x2_ck: dpll_core_h13x2_ck@140 {
+       dpll_core_h13x2_ck: clock-dpll-core-h13x2-8@140 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h13x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_h14x2_ck: dpll_core_h14x2_ck@144 {
+       dpll_core_h14x2_ck: clock-dpll-core-h14x2-8@144 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h14x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_h22x2_ck: dpll_core_h22x2_ck@154 {
+       dpll_core_h22x2_ck: clock-dpll-core-h22x2-8@154 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h22x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_h23x2_ck: dpll_core_h23x2_ck@158 {
+       dpll_core_h23x2_ck: clock-dpll-core-h23x2-8@158 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h23x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_core_h24x2_ck: dpll_core_h24x2_ck@15c {
+       dpll_core_h24x2_ck: clock-dpll-core-h24x2-8@15c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h24x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_ddr_x2_ck: dpll_ddr_x2_ck {
+       dpll_ddr_x2_ck: clock-dpll-ddr-x2 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_ddr_x2_ck";
                clocks = <&dpll_ddr_ck>;
        };
 
-       dpll_ddr_h11x2_ck: dpll_ddr_h11x2_ck@228 {
+       dpll_ddr_h11x2_ck: clock-dpll-ddr-h11x2-8@228 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_ddr_h11x2_ck";
                clocks = <&dpll_ddr_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_dsp_x2_ck: dpll_dsp_x2_ck {
+       dpll_dsp_x2_ck: clock-dpll-dsp-x2 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_dsp_x2_ck";
                clocks = <&dpll_dsp_ck>;
        };
 
-       dpll_dsp_m3x2_ck: dpll_dsp_m3x2_ck@248 {
+       dpll_dsp_m3x2_ck: clock-dpll-dsp-m3x2-8@248 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_dsp_m3x2_ck";
                clocks = <&dpll_dsp_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                assigned-clock-rates = <400000000>;
        };
 
-       dpll_gmac_x2_ck: dpll_gmac_x2_ck {
+       dpll_gmac_x2_ck: clock-dpll-gmac-x2 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_gmac_x2_ck";
                clocks = <&dpll_gmac_ck>;
        };
 
-       dpll_gmac_h11x2_ck: dpll_gmac_h11x2_ck@2c0 {
+       dpll_gmac_h11x2_ck: clock-dpll-gmac-h11x2-8@2c0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_gmac_h11x2_ck";
                clocks = <&dpll_gmac_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_gmac_h12x2_ck: dpll_gmac_h12x2_ck@2c4 {
+       dpll_gmac_h12x2_ck: clock-dpll-gmac-h12x2-8@2c4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_gmac_h12x2_ck";
                clocks = <&dpll_gmac_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_gmac_h13x2_ck: dpll_gmac_h13x2_ck@2c8 {
+       dpll_gmac_h13x2_ck: clock-dpll-gmac-h13x2-8@2c8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_gmac_h13x2_ck";
                clocks = <&dpll_gmac_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_gmac_m3x2_ck: dpll_gmac_m3x2_ck@2bc {
+       dpll_gmac_m3x2_ck: clock-dpll-gmac-m3x2-8@2bc {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_gmac_m3x2_ck";
                clocks = <&dpll_gmac_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       gmii_m_clk_div: gmii_m_clk_div {
+       gmii_m_clk_div: clock-gmii-m-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "gmii_m_clk_div";
                clocks = <&dpll_gmac_h11x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       hdmi_clk2_div: hdmi_clk2_div {
+       hdmi_clk2_div: clock-hdmi-clk2-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "hdmi_clk2_div";
                clocks = <&hdmi_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       hdmi_div_clk: hdmi_div_clk {
+       hdmi_div_clk: clock-hdmi-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "hdmi_div_clk";
                clocks = <&hdmi_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       l3_iclk_div: l3_iclk_div@100 {
+       l3_iclk_div: clock-l3-iclk-div-4@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3_iclk_div";
                ti,max-div = <2>;
                ti,bit-shift = <4>;
                reg = <0x0100>;
                ti,index-power-of-two;
        };
 
-       l4_root_clk_div: l4_root_clk_div {
+       l4_root_clk_div: clock-l4-root-clk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l4_root_clk_div";
                clocks = <&l3_iclk_div>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       video1_clk2_div: video1_clk2_div {
+       video1_clk2_div: clock-video1-clk2-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "video1_clk2_div";
                clocks = <&video1_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       video1_div_clk: video1_div_clk {
+       video1_div_clk: clock-video1-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "video1_div_clk";
                clocks = <&video1_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       video2_clk2_div: video2_clk2_div {
+       video2_clk2_div: clock-video2-clk2-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "video2_clk2_div";
                clocks = <&video2_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       video2_div_clk: video2_div_clk {
+       video2_div_clk: clock-video2-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "video2_div_clk";
                clocks = <&video2_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dummy_ck: dummy_ck {
+       dummy_ck: clock-dummy {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "dummy_ck";
                clock-frequency = <0>;
        };
 };
 &prm_clocks {
-       sys_clkin1: sys_clkin1@110 {
+       sys_clkin1: clock-sys-clkin1@110 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sys_clkin1";
                clocks = <&virt_12000000_ck>, <&virt_20000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>;
                reg = <0x0110>;
                ti,index-starts-at-one;
        };
 
-       abe_dpll_sys_clk_mux: abe_dpll_sys_clk_mux@118 {
+       abe_dpll_sys_clk_mux: clock-abe-dpll-sys-clk-mux@118 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_sys_clk_mux";
                clocks = <&sys_clkin1>, <&sys_clkin2>;
                reg = <0x0118>;
        };
 
-       abe_dpll_bypass_clk_mux: abe_dpll_bypass_clk_mux@114 {
+       abe_dpll_bypass_clk_mux: clock-abe-dpll-bypass-clk-mux@114 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_bypass_clk_mux";
                clocks = <&abe_dpll_sys_clk_mux>, <&sys_32k_ck>;
                reg = <0x0114>;
        };
 
-       abe_dpll_clk_mux: abe_dpll_clk_mux@10c {
+       abe_dpll_clk_mux: clock-abe-dpll-clk-mux@10c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_clk_mux";
                clocks = <&abe_dpll_sys_clk_mux>, <&sys_32k_ck>;
                reg = <0x010c>;
        };
 
-       abe_24m_fclk: abe_24m_fclk@11c {
+       abe_24m_fclk: clock-abe-24m@11c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_24m_fclk";
                clocks = <&dpll_abe_m2x2_ck>;
                reg = <0x011c>;
                ti,dividers = <8>, <16>;
        };
 
-       aess_fclk: aess_fclk@178 {
+       aess_fclk: clock-aess@178 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "aess_fclk";
                clocks = <&abe_clk>;
                reg = <0x0178>;
                ti,max-div = <2>;
        };
 
-       abe_giclk_div: abe_giclk_div@174 {
+       abe_giclk_div: clock-abe-giclk-div@174 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_giclk_div";
                clocks = <&aess_fclk>;
                reg = <0x0174>;
                ti,max-div = <2>;
        };
 
-       abe_lp_clk_div: abe_lp_clk_div@1d8 {
+       abe_lp_clk_div: clock-abe-lp-clk-div@1d8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_lp_clk_div";
                clocks = <&dpll_abe_m2x2_ck>;
                reg = <0x01d8>;
                ti,dividers = <16>, <32>;
        };
 
-       abe_sys_clk_div: abe_sys_clk_div@120 {
+       abe_sys_clk_div: clock-abe-sys-clk-div@120 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_sys_clk_div";
                clocks = <&sys_clkin1>;
                reg = <0x0120>;
                ti,max-div = <2>;
        };
 
-       adc_gfclk_mux: adc_gfclk_mux@1dc {
+       adc_gfclk_mux: clock-adc-gfclk-mux@1dc {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "adc_gfclk_mux";
                clocks = <&sys_clkin1>, <&sys_clkin2>, <&sys_32k_ck>;
                reg = <0x01dc>;
        };
 
-       sys_clk1_dclk_div: sys_clk1_dclk_div@1c8 {
+       sys_clk1_dclk_div: clock-sys-clk1-dclk-div@1c8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "sys_clk1_dclk_div";
                clocks = <&sys_clkin1>;
                ti,max-div = <64>;
                reg = <0x01c8>;
                ti,index-power-of-two;
        };
 
-       sys_clk2_dclk_div: sys_clk2_dclk_div@1cc {
+       sys_clk2_dclk_div: clock-sys-clk2-dclk-div@1cc {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "sys_clk2_dclk_div";
                clocks = <&sys_clkin2>;
                ti,max-div = <64>;
                reg = <0x01cc>;
                ti,index-power-of-two;
        };
 
-       per_abe_x1_dclk_div: per_abe_x1_dclk_div@1bc {
+       per_abe_x1_dclk_div: clock-per-abe-x1-dclk-div@1bc {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "per_abe_x1_dclk_div";
                clocks = <&dpll_abe_m2_ck>;
                ti,max-div = <64>;
                reg = <0x01bc>;
                ti,index-power-of-two;
        };
 
-       dsp_gclk_div: dsp_gclk_div@18c {
+       dsp_gclk_div: clock-dsp-gclk-div@18c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dsp_gclk_div";
                clocks = <&dpll_dsp_m2_ck>;
                ti,max-div = <64>;
                reg = <0x018c>;
                ti,index-power-of-two;
        };
 
-       gpu_dclk: gpu_dclk@1a0 {
+       gpu_dclk: clock-gpu-dclk@1a0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "gpu_dclk";
                clocks = <&dpll_gpu_m2_ck>;
                ti,max-div = <64>;
                reg = <0x01a0>;
                ti,index-power-of-two;
        };
 
-       emif_phy_dclk_div: emif_phy_dclk_div@190 {
+       emif_phy_dclk_div: clock-emif-phy-dclk-div@190 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "emif_phy_dclk_div";
                clocks = <&dpll_ddr_m2_ck>;
                ti,max-div = <64>;
                reg = <0x0190>;
                ti,index-power-of-two;
        };
 
-       gmac_250m_dclk_div: gmac_250m_dclk_div@19c {
+       gmac_250m_dclk_div: clock-gmac-250m-dclk-div@19c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "gmac_250m_dclk_div";
                clocks = <&dpll_gmac_m2_ck>;
                ti,max-div = <64>;
                reg = <0x019c>;
                ti,index-power-of-two;
        };
 
-       gmac_main_clk: gmac_main_clk {
+       gmac_main_clk: clock-gmac-main {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "gmac_main_clk";
                clocks = <&gmac_250m_dclk_div>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       l3init_480m_dclk_div: l3init_480m_dclk_div@1ac {
+       l3init_480m_dclk_div: clock-l3init-480m-dclk-div@1ac {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3init_480m_dclk_div";
                clocks = <&dpll_usb_m2_ck>;
                ti,max-div = <64>;
                reg = <0x01ac>;
                ti,index-power-of-two;
        };
 
-       usb_otg_dclk_div: usb_otg_dclk_div@184 {
+       usb_otg_dclk_div: clock-usb-otg-dclk-div@184 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "usb_otg_dclk_div";
                clocks = <&usb_otg_clkin_ck>;
                ti,max-div = <64>;
                reg = <0x0184>;
                ti,index-power-of-two;
        };
 
-       sata_dclk_div: sata_dclk_div@1c0 {
+       sata_dclk_div: clock-sata-dclk-div@1c0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "sata_dclk_div";
                clocks = <&sys_clkin1>;
                ti,max-div = <64>;
                reg = <0x01c0>;
                ti,index-power-of-two;
        };
 
-       pcie2_dclk_div: pcie2_dclk_div@1b8 {
+       pcie2_dclk_div: clock-pcie2-dclk-div@1b8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "pcie2_dclk_div";
                clocks = <&dpll_pcie_ref_m2_ck>;
                ti,max-div = <64>;
                reg = <0x01b8>;
                ti,index-power-of-two;
        };
 
-       pcie_dclk_div: pcie_dclk_div@1b4 {
+       pcie_dclk_div: clock-pcie-dclk-div@1b4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "pcie_dclk_div";
                clocks = <&apll_pcie_m2_ck>;
                ti,max-div = <64>;
                reg = <0x01b4>;
                ti,index-power-of-two;
        };
 
-       emu_dclk_div: emu_dclk_div@194 {
+       emu_dclk_div: clock-emu-dclk-div@194 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "emu_dclk_div";
                clocks = <&sys_clkin1>;
                ti,max-div = <64>;
                reg = <0x0194>;
                ti,index-power-of-two;
        };
 
-       secure_32k_dclk_div: secure_32k_dclk_div@1c4 {
+       secure_32k_dclk_div: clock-secure-32k-dclk-div@1c4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "secure_32k_dclk_div";
                clocks = <&secure_32k_clk_src_ck>;
                ti,max-div = <64>;
                reg = <0x01c4>;
                ti,index-power-of-two;
        };
 
-       clkoutmux0_clk_mux: clkoutmux0_clk_mux@158 {
+       clkoutmux0_clk_mux: clock-clkoutmux0-clk-mux@158 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "clkoutmux0_clk_mux";
                clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>;
                reg = <0x0158>;
        };
 
-       clkoutmux1_clk_mux: clkoutmux1_clk_mux@15c {
+       clkoutmux1_clk_mux: clock-clkoutmux1-clk-mux@15c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "clkoutmux1_clk_mux";
                clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>;
                reg = <0x015c>;
        };
 
-       clkoutmux2_clk_mux: clkoutmux2_clk_mux@160 {
+       clkoutmux2_clk_mux: clock-clkoutmux2-clk-mux@160 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "clkoutmux2_clk_mux";
                clocks = <&sys_clk1_dclk_div>, <&sys_clk2_dclk_div>, <&per_abe_x1_dclk_div>, <&mpu_dclk_div>, <&dsp_gclk_div>, <&iva_dclk>, <&gpu_dclk>, <&core_dpll_out_dclk_div>, <&emif_phy_dclk_div>, <&gmac_250m_dclk_div>, <&video2_dclk_div>, <&video1_dclk_div>, <&hdmi_dclk_div>, <&func_96m_aon_dclk_div>, <&l3init_480m_dclk_div>, <&usb_otg_dclk_div>, <&sata_dclk_div>, <&pcie2_dclk_div>, <&pcie_dclk_div>, <&emu_dclk_div>, <&secure_32k_dclk_div>, <&eve_dclk_div>;
                reg = <0x0160>;
        };
 
-       custefuse_sys_gfclk_div: custefuse_sys_gfclk_div {
+       custefuse_sys_gfclk_div: clock-custefuse-sys-gfclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "custefuse_sys_gfclk_div";
                clocks = <&sys_clkin1>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       eve_clk: eve_clk@180 {
+       eve_clk: clock-eve@180 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "eve_clk";
                clocks = <&dpll_eve_m2_ck>, <&dpll_dsp_m3x2_ck>;
                reg = <0x0180>;
        };
 
-       hdmi_dpll_clk_mux: hdmi_dpll_clk_mux@164 {
+       hdmi_dpll_clk_mux: clock-hdmi-dpll-clk-mux@164 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "hdmi_dpll_clk_mux";
                clocks = <&sys_clkin1>, <&sys_clkin2>;
                reg = <0x0164>;
        };
 
-       mlb_clk: mlb_clk@134 {
+       mlb_clk: clock-mlb@134 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "mlb_clk";
                clocks = <&mlb_clkin_ck>;
                ti,max-div = <64>;
                reg = <0x0134>;
                ti,index-power-of-two;
        };
 
-       mlbp_clk: mlbp_clk@130 {
+       mlbp_clk: clock-mlbp@130 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "mlbp_clk";
                clocks = <&mlbp_clkin_ck>;
                ti,max-div = <64>;
                reg = <0x0130>;
                ti,index-power-of-two;
        };
 
-       per_abe_x1_gfclk2_div: per_abe_x1_gfclk2_div@138 {
+       per_abe_x1_gfclk2_div: clock-per-abe-x1-gfclk2-div@138 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "per_abe_x1_gfclk2_div";
                clocks = <&dpll_abe_m2_ck>;
                ti,max-div = <64>;
                reg = <0x0138>;
                ti,index-power-of-two;
        };
 
-       timer_sys_clk_div: timer_sys_clk_div@144 {
+       timer_sys_clk_div: clock-timer-sys-clk-div@144 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "timer_sys_clk_div";
                clocks = <&sys_clkin1>;
                reg = <0x0144>;
                ti,max-div = <2>;
        };
 
-       video1_dpll_clk_mux: video1_dpll_clk_mux@168 {
+       video1_dpll_clk_mux: clock-video1-dpll-clk-mux@168 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "video1_dpll_clk_mux";
                clocks = <&sys_clkin1>, <&sys_clkin2>;
                reg = <0x0168>;
        };
 
-       video2_dpll_clk_mux: video2_dpll_clk_mux@16c {
+       video2_dpll_clk_mux: clock-video2-dpll-clk-mux@16c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "video2_dpll_clk_mux";
                clocks = <&sys_clkin1>, <&sys_clkin2>;
                reg = <0x016c>;
        };
 
-       wkupaon_iclk_mux: wkupaon_iclk_mux@108 {
+       wkupaon_iclk_mux: clock-wkupaon-iclk-mux@108 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "wkupaon_iclk_mux";
                clocks = <&sys_clkin1>, <&abe_lp_clk_div>;
                reg = <0x0108>;
        };
 };
 
 &cm_core_clocks {
-       dpll_pcie_ref_ck: dpll_pcie_ref_ck@200 {
+       dpll_pcie_ref_ck: clock@200 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_pcie_ref_ck";
                clocks = <&sys_clkin1>, <&sys_clkin1>;
                reg = <0x0200>, <0x0204>, <0x020c>, <0x0208>;
        };
 
-       dpll_pcie_ref_m2ldo_ck: dpll_pcie_ref_m2ldo_ck@210 {
+       dpll_pcie_ref_m2ldo_ck: clock-dpll-pcie-ref-m2ldo-8@210 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_pcie_ref_m2ldo_ck";
                clocks = <&dpll_pcie_ref_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       apll_pcie_in_clk_mux: apll_pcie_in_clk_mux@4ae06118 {
+       apll_pcie_in_clk_mux: clock-apll-pcie-in-clk-mux-7@4ae06118 {
                compatible = "ti,mux-clock";
+               clock-output-names = "apll_pcie_in_clk_mux";
                clocks = <&dpll_pcie_ref_m2ldo_ck>, <&pciesref_acs_clk_ck>;
                #clock-cells = <0>;
                reg = <0x021c 0x4>;
                ti,bit-shift = <7>;
        };
 
-       apll_pcie_ck: apll_pcie_ck@21c {
+       apll_pcie_ck: clock@21c {
                #clock-cells = <0>;
                compatible = "ti,dra7-apll-clock";
+               clock-output-names = "apll_pcie_ck";
                clocks = <&apll_pcie_in_clk_mux>, <&dpll_pcie_ref_ck>;
                reg = <0x021c>, <0x0220>;
        };
 
-       optfclk_pciephy_div: optfclk_pciephy_div@4a00821c {
+       optfclk_pciephy_div: clock-optfclk-pciephy-div-8@4a00821c {
                compatible = "ti,divider-clock";
+               clock-output-names = "optfclk_pciephy_div";
                clocks = <&apll_pcie_ck>;
                #clock-cells = <0>;
                reg = <0x021c>;
                ti,max-div = <2>;
        };
 
-       apll_pcie_clkvcoldo: apll_pcie_clkvcoldo {
+       apll_pcie_clkvcoldo: clock-apll-pcie-clkvcoldo {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "apll_pcie_clkvcoldo";
                clocks = <&apll_pcie_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       apll_pcie_clkvcoldo_div: apll_pcie_clkvcoldo_div {
+       apll_pcie_clkvcoldo_div: clock-apll-pcie-clkvcoldo-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "apll_pcie_clkvcoldo_div";
                clocks = <&apll_pcie_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       apll_pcie_m2_ck: apll_pcie_m2_ck {
+       apll_pcie_m2_ck: clock-apll-pcie-m2 {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "apll_pcie_m2_ck";
                clocks = <&apll_pcie_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_per_byp_mux: dpll_per_byp_mux@14c {
+       dpll_per_byp_mux: clock-dpll-per-byp-mux-23@14c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_per_byp_mux";
                clocks = <&sys_clkin1>, <&per_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x014c>;
        };
 
-       dpll_per_ck: dpll_per_ck@140 {
+       dpll_per_ck: clock@140 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_per_ck";
                clocks = <&sys_clkin1>, <&dpll_per_byp_mux>;
                reg = <0x0140>, <0x0144>, <0x014c>, <0x0148>;
        };
 
-       dpll_per_m2_ck: dpll_per_m2_ck@150 {
+       dpll_per_m2_ck: clock-dpll-per-m2-8@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2_ck";
                clocks = <&dpll_per_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       func_96m_aon_dclk_div: func_96m_aon_dclk_div {
+       func_96m_aon_dclk_div: clock-func-96m-aon-dclk-div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_96m_aon_dclk_div";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       dpll_usb_byp_mux: dpll_usb_byp_mux@18c {
+       dpll_usb_byp_mux: clock-dpll-usb-byp-mux-23@18c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_usb_byp_mux";
                clocks = <&sys_clkin1>, <&usb_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x018c>;
        };
 
-       dpll_usb_ck: dpll_usb_ck@180 {
+       dpll_usb_ck: clock@180 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-j-type-clock";
+               clock-output-names = "dpll_usb_ck";
                clocks = <&sys_clkin1>, <&dpll_usb_byp_mux>;
                reg = <0x0180>, <0x0184>, <0x018c>, <0x0188>;
        };
 
-       dpll_usb_m2_ck: dpll_usb_m2_ck@190 {
+       dpll_usb_m2_ck: clock-dpll-usb-m2-8@190 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_usb_m2_ck";
                clocks = <&dpll_usb_ck>;
                ti,max-div = <127>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_pcie_ref_m2_ck: dpll_pcie_ref_m2_ck@210 {
+       dpll_pcie_ref_m2_ck: clock-dpll-pcie-ref-m2-8@210 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_pcie_ref_m2_ck";
                clocks = <&dpll_pcie_ref_ck>;
                ti,max-div = <127>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_x2_ck: dpll_per_x2_ck {
+       dpll_per_x2_ck: clock-dpll-per-x2 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_per_x2_ck";
                clocks = <&dpll_per_ck>;
        };
 
-       dpll_per_h11x2_ck: dpll_per_h11x2_ck@158 {
+       dpll_per_h11x2_ck: clock-dpll-per-h11x2-8@158 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h11x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_h12x2_ck: dpll_per_h12x2_ck@15c {
+       dpll_per_h12x2_ck: clock-dpll-per-h12x2-8@15c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h12x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_h13x2_ck: dpll_per_h13x2_ck@160 {
+       dpll_per_h13x2_ck: clock-dpll-per-h13x2-8@160 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h13x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_h14x2_ck: dpll_per_h14x2_ck@164 {
+       dpll_per_h14x2_ck: clock-dpll-per-h14x2-8@164 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h14x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_per_m2x2_ck: dpll_per_m2x2_ck@150 {
+       dpll_per_m2x2_ck: clock-dpll-per-m2x2-8@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
                ti,invert-autoidle-bit;
        };
 
-       dpll_usb_clkdcoldo: dpll_usb_clkdcoldo {
+       dpll_usb_clkdcoldo: clock-dpll-usb-clkdcoldo {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_usb_clkdcoldo";
                clocks = <&dpll_usb_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        };
 
-       func_128m_clk: func_128m_clk {
+       func_128m_clk: clock-func-128m {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_128m_clk";
                clocks = <&dpll_per_h11x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       func_12m_fclk: func_12m_fclk {
+       func_12m_fclk: clock-func-12m-fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_12m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <16>;
        };
 
-       func_24m_clk: func_24m_clk {
+       func_24m_clk: clock-func-24m {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_24m_clk";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        };
 
-       func_48m_fclk: func_48m_fclk {
+       func_48m_fclk: clock-func-48m-fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_48m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        };
 
-       func_96m_fclk: func_96m_fclk {
+       func_96m_fclk: clock-func-96m-fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_96m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        };
 
-       l3init_60m_fclk: l3init_60m_fclk@104 {
+       l3init_60m_fclk: clock-l3init-60m@104 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3init_60m_fclk";
                clocks = <&dpll_usb_m2_ck>;
                reg = <0x0104>;
                ti,dividers = <1>, <8>;
        };
 
-       clkout2_clk: clkout2_clk@6b0 {
+       clkout2_clk: clock-clkout2-8@6b0 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "clkout2_clk";
                clocks = <&clkoutmux2_clk_mux>;
                ti,bit-shift = <8>;
                reg = <0x06b0>;
        };
 
-       l3init_960m_gfclk: l3init_960m_gfclk@6c0 {
+       l3init_960m_gfclk: clock-l3init-960m-gfclk-8@6c0 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "l3init_960m_gfclk";
                clocks = <&dpll_usb_clkdcoldo>;
                ti,bit-shift = <8>;
                reg = <0x06c0>;
        };
 
-       usb_phy1_always_on_clk32k: usb_phy1_always_on_clk32k@640 {
+       usb_phy1_always_on_clk32k: clock-usb-phy1-always-on-clk32k-8@640 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy1_always_on_clk32k";
                clocks = <&sys_32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x0640>;
        };
 
-       usb_phy2_always_on_clk32k: usb_phy2_always_on_clk32k@688 {
+       usb_phy2_always_on_clk32k: clock-usb-phy2-always-on-clk32k-8@688 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy2_always_on_clk32k";
                clocks = <&sys_32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x0688>;
        };
 
-       usb_phy3_always_on_clk32k: usb_phy3_always_on_clk32k@698 {
+       usb_phy3_always_on_clk32k: clock-usb-phy3-always-on-clk32k-8@698 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy3_always_on_clk32k";
                clocks = <&sys_32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x0698>;
        };
 
-       gpu_core_gclk_mux: gpu_core_gclk_mux@1220 {
+       gpu_core_gclk_mux: clock-gpu-core-gclk-mux-24@1220 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gpu_core_gclk_mux";
                clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>, <&dpll_gpu_m2_ck>;
                ti,bit-shift = <24>;
                reg = <0x1220>;
                assigned-clock-parents = <&dpll_gpu_m2_ck>;
        };
 
-       gpu_hyd_gclk_mux: gpu_hyd_gclk_mux@1220 {
+       gpu_hyd_gclk_mux: clock-gpu-hyd-gclk-mux-26@1220 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gpu_hyd_gclk_mux";
                clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>, <&dpll_gpu_m2_ck>;
                ti,bit-shift = <26>;
                reg = <0x1220>;
                assigned-clock-parents = <&dpll_gpu_m2_ck>;
        };
 
-       l3instr_ts_gclk_div: l3instr_ts_gclk_div@e50 {
+       l3instr_ts_gclk_div: clock-l3instr-ts-gclk-div-24@e50 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3instr_ts_gclk_div";
                clocks = <&wkupaon_iclk_mux>;
                ti,bit-shift = <24>;
                reg = <0x0e50>;
                ti,dividers = <8>, <16>, <32>;
        };
 
-       vip1_gclk_mux: vip1_gclk_mux@1020 {
+       vip1_gclk_mux: clock-vip1-gclk-mux-24@1020 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "vip1_gclk_mux";
                clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>;
                ti,bit-shift = <24>;
                reg = <0x1020>;
        };
 
-       vip2_gclk_mux: vip2_gclk_mux@1028 {
+       vip2_gclk_mux: clock-vip2-gclk-mux-24@1028 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "vip2_gclk_mux";
                clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>;
                ti,bit-shift = <24>;
                reg = <0x1028>;
        };
 
-       vip3_gclk_mux: vip3_gclk_mux@1030 {
+       vip3_gclk_mux: clock-vip3-gclk-mux-24@1030 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "vip3_gclk_mux";
                clocks = <&l3_iclk_div>, <&dpll_core_h23x2_ck>;
                ti,bit-shift = <24>;
                reg = <0x1030>;
 };
 
 &cm_core_clockdomains {
-       coreaon_clkdm: coreaon_clkdm {
+       coreaon_clkdm: clock-coreaon-clkdm {
                compatible = "ti,clockdomain";
+               clock-output-names = "coreaon_clkdm";
                clocks = <&dpll_usb_ck>;
        };
 };
 
 &scm_conf_clocks {
-       dss_deshdcp_clk: dss_deshdcp_clk@558 {
+       dss_deshdcp_clk: clock-dss-deshdcp-0@558 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "dss_deshdcp_clk";
                clocks = <&l3_iclk_div>;
                ti,bit-shift = <0>;
                reg = <0x558>;
        };
 
-       ehrpwm0_tbclk: ehrpwm0_tbclk@558 {
+       ehrpwm0_tbclk: clock-ehrpwm0-tbclk-20@558 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm0_tbclk";
                clocks = <&l4_root_clk_div>;
                ti,bit-shift = <20>;
                reg = <0x0558>;
        };
 
-       ehrpwm1_tbclk: ehrpwm1_tbclk@558 {
+       ehrpwm1_tbclk: clock-ehrpwm1-tbclk-21@558 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm1_tbclk";
                clocks = <&l4_root_clk_div>;
                ti,bit-shift = <21>;
                reg = <0x0558>;
        };
 
-       ehrpwm2_tbclk: ehrpwm2_tbclk@558 {
+       ehrpwm2_tbclk: clock-ehrpwm2-tbclk-22@558 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "ehrpwm2_tbclk";
                clocks = <&l4_root_clk_div>;
                ti,bit-shift = <22>;
                reg = <0x0558>;
        };
 
-       sys_32k_ck: sys_32k_ck {
+       sys_32k_ck: clock-sys-32k {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sys_32k_ck";
                clocks = <&sys_clk32_crystal_ck>, <&sys_clk32_pseudo_ck>, <&sys_clk32_pseudo_ck>, <&sys_clk32_pseudo_ck>;
                ti,bit-shift = <8>;
                reg = <0x6c4>;
 };
 
 &cm_core_aon {
-       mpu_cm: mpu-cm@300 {
+       mpu_cm: clock@300 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "mpu_cm";
                reg = <0x300 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x300 0x100>;
 
-               mpu_clkctrl: mpu-clkctrl@20 {
+               mpu_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "mpu_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        };
 
-       dsp1_cm: dsp1-cm@400 {
+       dsp1_cm: clock@400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dsp1_cm";
                reg = <0x400 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x400 0x100>;
 
-               dsp1_clkctrl: dsp1-clkctrl@20 {
+               dsp1_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dsp1_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        };
 
-       ipu_cm: ipu-cm@500 {
+       ipu_cm: clock@500 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "ipu_cm";
                reg = <0x500 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x500 0x100>;
 
-               ipu1_clkctrl: ipu1-clkctrl@20 {
+               ipu1_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "ipu1_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                        assigned-clocks = <&ipu1_clkctrl DRA7_IPU1_MMU_IPU1_CLKCTRL 24>;
                        assigned-clock-parents = <&dpll_core_h22x2_ck>;
                };
 
-               ipu_clkctrl: ipu-clkctrl@50 {
+               ipu_clkctrl: clock@50 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "ipu_clkctrl";
                        reg = <0x50 0x34>;
                        #clock-cells = <2>;
                };
 
        };
 
-       dsp2_cm: dsp2-cm@600 {
+       dsp2_cm: clock@600 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dsp2_cm";
                reg = <0x600 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x600 0x100>;
 
-               dsp2_clkctrl: dsp2-clkctrl@20 {
+               dsp2_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dsp2_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        };
 
-       rtc_cm: rtc-cm@700 {
+       rtc_cm: clock@700 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "rtc_cm";
                reg = <0x700 0x60>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x700 0x60>;
 
-               rtc_clkctrl: rtc-clkctrl@20 {
+               rtc_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "rtc_clkctrl";
                        reg = <0x20 0x28>;
                        #clock-cells = <2>;
                };
        };
 
-       vpe_cm: vpe-cm@760 {
+       vpe_cm: clock@760 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "vpe_cm";
                reg = <0x760 0xc>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x760 0xc>;
 
-               vpe_clkctrl: vpe-clkctrl@0 {
+               vpe_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "vpe_clkctrl";
                        reg = <0x0 0xc>;
                        #clock-cells = <2>;
                };
 };
 
 &cm_core {
-       coreaon_cm: coreaon-cm@600 {
+       coreaon_cm: clock@600 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "coreaon_cm";
                reg = <0x600 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x600 0x100>;
 
-               coreaon_clkctrl: coreaon-clkctrl@20 {
+               coreaon_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "coreaon_clkctrl";
                        reg = <0x20 0x1c>;
                        #clock-cells = <2>;
                };
        };
 
-       l3main1_cm: l3main1-cm@700 {
+       l3main1_cm: clock@700 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3main1_cm";
                reg = <0x700 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x700 0x100>;
 
-               l3main1_clkctrl: l3main1-clkctrl@20 {
+               l3main1_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3main1_clkctrl";
                        reg = <0x20 0x74>;
                        #clock-cells = <2>;
                };
 
        };
 
-       ipu2_cm: ipu2-cm@900 {
+       ipu2_cm: clock@900 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "ipu2_cm";
                reg = <0x900 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x900 0x100>;
 
-               ipu2_clkctrl: ipu2-clkctrl@20 {
+               ipu2_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "ipu2_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        };
 
-       dma_cm: dma-cm@a00 {
+       dma_cm: clock@a00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dma_cm";
                reg = <0xa00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xa00 0x100>;
 
-               dma_clkctrl: dma-clkctrl@20 {
+               dma_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dma_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       emif_cm: emif-cm@b00 {
+       emif_cm: clock@b00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "emif_cm";
                reg = <0xb00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xb00 0x100>;
 
-               emif_clkctrl: emif-clkctrl@20 {
+               emif_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "emif_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       atl_cm: atl-cm@c00 {
+       atl_cm: clock@c00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "atl_cm";
                reg = <0xc00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xc00 0x100>;
 
-               atl_clkctrl: atl-clkctrl@0 {
+               atl_clkctrl: clock@0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "atl_clkctrl";
                        reg = <0x0 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       l4cfg_cm: l4cfg-cm@d00 {
+       l4cfg_cm: clock@d00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4cfg_cm";
                reg = <0xd00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xd00 0x100>;
 
-               l4cfg_clkctrl: l4cfg-clkctrl@20 {
+               l4cfg_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4cfg_clkctrl";
                        reg = <0x20 0x84>;
                        #clock-cells = <2>;
                };
        };
 
-       l3instr_cm: l3instr-cm@e00 {
+       l3instr_cm: clock@e00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3instr_cm";
                reg = <0xe00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xe00 0x100>;
 
-               l3instr_clkctrl: l3instr-clkctrl@20 {
+               l3instr_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3instr_clkctrl";
                        reg = <0x20 0xc>;
                        #clock-cells = <2>;
                };
        };
 
-       iva_cm: iva-cm@f00 {
+       iva_cm: clock@f00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "iva_cm";
                reg = <0xf00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0xf00 0x100>;
 
-               iva_clkctrl: iva-clkctrl@20 {
+               iva_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "iva_clkctrl";
                        reg = <0x20 0xc>;
                        #clock-cells = <2>;
                };
        };
 
-       cam_cm: cam-cm@1000 {
+       cam_cm: clock@1000 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "cam_cm";
                reg = <0x1000 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1000 0x100>;
 
-               cam_clkctrl: cam-clkctrl@20 {
+               cam_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "cam_clkctrl";
                        reg = <0x20 0x2c>;
                        #clock-cells = <2>;
                };
        };
 
-       dss_cm: dss-cm@1100 {
+       dss_cm: clock@1100 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dss_cm";
                reg = <0x1100 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1100 0x100>;
 
-               dss_clkctrl: dss-clkctrl@20 {
+               dss_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dss_clkctrl";
                        reg = <0x20 0x14>;
                        #clock-cells = <2>;
                };
        };
 
-       gpu_cm: gpu-cm@1200 {
+       gpu_cm: clock@1200 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "gpu_cm";
                reg = <0x1200 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1200 0x100>;
 
-               gpu_clkctrl: gpu-clkctrl@20 {
+               gpu_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "gpu_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
        };
 
-       l3init_cm: l3init-cm@1300 {
+       l3init_cm: clock@1300 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3init_cm";
                reg = <0x1300 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1300 0x100>;
 
-               l3init_clkctrl: l3init-clkctrl@20 {
+               l3init_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3init_clkctrl";
                        reg = <0x20 0x6c>, <0xe0 0x14>;
                        #clock-cells = <2>;
                };
 
-               pcie_clkctrl: pcie-clkctrl@b0 {
+               pcie_clkctrl: clock@b0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "pcie_clkctrl";
                        reg = <0xb0 0xc>;
                        #clock-cells = <2>;
                };
 
-               gmac_clkctrl: gmac-clkctrl@d0 {
+               gmac_clkctrl: clock@d0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "gmac_clkctrl";
                        reg = <0xd0 0x4>;
                        #clock-cells = <2>;
                };
 
        };
 
-       l4per_cm: l4per-cm@1700 {
+       l4per_cm: clock@1700 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4per_cm";
                reg = <0x1700 0x300>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1700 0x300>;
 
-               l4per_clkctrl: l4per-clkctrl@28 {
+               l4per_clkctrl: clock@28 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4per_clkctrl";
                        reg = <0x28 0x64>, <0xa0 0x24>, <0xf0 0x3c>, <0x140 0x1c>, <0x170 0x4>;
                        #clock-cells = <2>;
 
                        assigned-clock-parents = <&abe_24m_fclk>;
                };
 
-               l4sec_clkctrl: l4sec-clkctrl@1a0 {
+               l4sec_clkctrl: clock@1a0 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4sec_clkctrl";
                        reg = <0x1a0 0x2c>;
                        #clock-cells = <2>;
                };
 
-               l4per2_clkctrl: l4per2-clkctrl@c {
+               l4per2_clkctrl: clock@c {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4per2_clkctrl";
                        reg = <0xc 0x4>, <0x18 0xc>, <0x90 0xc>, <0xc4 0x4>, <0x138 0x4>, <0x160 0xc>, <0x178 0x24>, <0x1d0 0x3c>;
                        #clock-cells = <2>;
                };
 
-               l4per3_clkctrl: l4per3-clkctrl@14 {
+               l4per3_clkctrl: clock@14 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4per3_clkctrl";
                        reg = <0x14 0x4>, <0xc8 0x14>, <0x130 0x4>;
                        #clock-cells = <2>;
                };
 };
 
 &prm {
-       wkupaon_cm: wkupaon-cm@1800 {
+       wkupaon_cm: clock@1800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "wkupaon_cm";
                reg = <0x1800 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1800 0x100>;
 
-               wkupaon_clkctrl: wkupaon-clkctrl@20 {
+               wkupaon_clkctrl: clock@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "wkupaon_clkctrl";
                        reg = <0x20 0x6c>;
                        #clock-cells = <2>;
                };
index ae64431..78dad23 100644 (file)
                };
 
                timer@10050000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "samsung,exynos3250-mct",
+                                    "samsung,exynos4210-mct";
                        reg = <0x10050000 0x800>;
                        interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
                        clocks = <&cmu CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@12690000 {
                        clocks = <&cmu CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                adc: adc@126c0000 {
index e81b3ee..6f0ca33 100644 (file)
                        status = "disabled";
                };
 
-               ehci: ehci@12580000 {
+               ehci: usb@12580000 {
                        compatible = "samsung,exynos4210-ehci";
                        reg = <0x12580000 0x100>;
                        interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                        phy-names = "host", "hsic0", "hsic1";
                };
 
-               ohci: ohci@12590000 {
+               ohci: usb@12590000 {
                        compatible = "samsung,exynos4210-ohci";
                        reg = <0x12590000 0x100>;
                        interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&clock CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@12690000 {
                        clocks = <&clock CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                mdma1: dma-controller@12850000 {
                        clocks = <&clock CLK_MDMA>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <1>;
                };
 
                fimd: fimd@11c00000 {
index 138d606..62bf335 100644 (file)
                clocks = <&clock CLK_MDMA>;
                clock-names = "apb_pclk";
                #dma-cells = <1>;
-               #dma-channels = <8>;
-               #dma-requests = <1>;
                power-domains = <&pd_lcd0>;
        };
 };
index efaf753..36c369c 100644 (file)
        phys = <&exynos_usbphy 2>, <&exynos_usbphy 3>;
        phy-names = "hsic0", "hsic1";
 
-       ethernet: usbether@2 {
-               compatible = "usb0424,9730";
+       ethernet: ethernet@2 {
+               compatible = "usb424,9730";
                reg = <2>;
                local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
        };
index a9fada5..1f17cc3 100644 (file)
        phy-names = "hsic0";
 
        hub@2 {
-               compatible = "usb0424,3503";
+               compatible = "usb424,3503";
                reg = <2>;
                #address-cells = <1>;
                #size-cells = <0>;
 
                hub@1 {
-                       compatible = "usb0424,9514";
+                       compatible = "usb424,9514";
                        reg = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
 
-                       ethernet: usbether@1 {
-                               compatible = "usb0424,ec00";
+                       ethernet: ethernet@1 {
+                               compatible = "usb424,ec00";
                                reg = <1>;
                                /* Filled in by a bootloader */
                                local-mac-address = [00 00 00 00 00 00];
index 21fbbf3..7129374 100644 (file)
        samsung,i2c-max-bus-freq = <20000>;
 
        eeprom@50 {
-               compatible = "samsung,s524ad0xd1";
+               compatible = "samsung,s524ad0xd1", "atmel,24c128";
                reg = <0x50>;
        };
 
        samsung,i2c-max-bus-freq = <20000>;
 
        eeprom@51 {
-               compatible = "samsung,s524ad0xd1";
+               compatible = "samsung,s524ad0xd1", "atmel,24c128";
                reg = <0x51>;
        };
 
index 5baaa7e..4708dcd 100644 (file)
                };
 
                timer@101c0000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "samsung,exynos5250-mct",
+                                    "samsung,exynos4210-mct";
                        reg = <0x101C0000 0x800>;
                        clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MCT>;
                        clock-names = "fin_pll", "mct";
                        clocks = <&clock CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@121b0000 {
                        clocks = <&clock CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                mdma0: dma-controller@10800000 {
                        clocks = <&clock CLK_MDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <1>;
                };
 
                mdma1: dma-controller@11c10000 {
                        clocks = <&clock CLK_MDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <1>;
                };
 
                gsc_0: gsc@13e00000 {
                        status = "disabled";
                };
 
-               dp_phy: video-phy {
+               dp_phy: video-phy-0 {
                        compatible = "samsung,exynos5250-dp-video-phy";
                        samsung,pmu-syscon = <&pmu_system_controller>;
                        #phy-cells = <0>;
                };
 
-               mipi_phy: video-phy@10040710 {
+               mipi_phy: video-phy-1 {
                        compatible = "samsung,s5pv210-mipi-video-phy";
-                       reg = <0x10040710 0x100>;
                        #phy-cells = <1>;
                        syscon = <&pmu_system_controller>;
                };
index 56271e7..ff1ee40 100644 (file)
                };
 
                mct: timer@100b0000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "samsung,exynos5260-mct",
+                                    "samsung,exynos4210-mct";
                        reg = <0x100B0000 0x1000>;
                        clocks = <&fin_pll>, <&clock_peri PERI_CLK_MCT>;
                        clock-names = "fin_pll", "mct";
index e54a339..d1cbc6b 100644 (file)
        #address-cells = <1>;
        #size-cells = <0>;
 
-       ethernet: usbether@2 {
-               compatible = "usb0424,9730";
+       ethernet: ethernet@2 {
+               compatible = "usb424,9730";
                reg = <2>;
                local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
        };
index 4d797a9..8a6b890 100644 (file)
                        clocks = <&clock CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@121b0000 {
                        clocks = <&clock CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                audi2s0: i2s@3830000 {
index 21b6087..9f2523a 100644 (file)
                        clocks = <&clock_audss EXYNOS_ADMA>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <6>;
-                       #dma-requests = <16>;
                        power-domains = <&mau_pd>;
                };
 
                        clocks = <&clock CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@121b0000 {
                        clocks = <&clock CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                mdma0: dma-controller@10800000 {
                        clocks = <&clock CLK_MDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <1>;
                };
 
                mdma1: dma-controller@11c10000 {
                        clocks = <&clock CLK_MDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <1>;
                        /*
                         * MDMA1 can support both secure and non-secure
                         * AXI transactions. When this is enabled in
index 2f65dcf..35818c4 100644 (file)
                compatible      = "samsung,K3QF2F20DB", "jedec,lpddr3";
                density         = <16384>;
                io-width        = <32>;
-               #address-cells  = <1>;
-               #size-cells     = <0>;
 
                tRFC-min-tck            = <17>;
                tRRD-min-tck            = <2>;
                tCKESR-min-tck          = <2>;
                tMRD-min-tck            = <5>;
 
-               timings_samsung_K3QF2F20DB_800mhz: timings@800000000 {
+               timings_samsung_K3QF2F20DB_800mhz: timings {
                        compatible      = "jedec,lpddr3-timings";
-                       /* workaround: 'reg' shows max-freq */
-                       reg             = <800000000>;
+                       max-freq        = <800000000>;
                        min-freq        = <100000000>;
                        tRFC            = <65000>;
                        tRRD            = <6000>;
index 62c5928..e3154a1 100644 (file)
        #size-cells = <0>;
 
        hub@1 {
-               compatible = "usb0424,9514";
+               compatible = "usb424,9514";
                reg = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@1 {
-                       compatible = "usb0424,ec00";
+               ethernet: ethernet@1 {
+                       compatible = "usb424,ec00";
                        reg = <1>;
                        local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
                };
index cecaeb6..a378d49 100644 (file)
        #size-cells = <0>;
 
        hub@1 {
-               compatible = "usb0424,9514";
+               compatible = "usb424,9514";
                reg = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@1 {
-                       compatible = "usb0424,ec00";
+               ethernet: ethernet@1 {
+                       compatible = "usb424,ec00";
                        reg = <1>;
                        local-mac-address = [00 00 00 00 00 00]; /* Filled in by a bootloader */
                };
index 2ddb7a5..3ec4376 100644 (file)
@@ -74,7 +74,8 @@
                };
 
                mct: timer@101c0000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "samsung,exynos5420-mct",
+                                    "samsung,exynos4210-mct";
                        reg = <0x101c0000 0xb00>;
                        interrupts-extended = <&combiner 23 3>,
                                              <&combiner 23 4>,
index fd525c3..b660c7d 100644 (file)
@@ -96,7 +96,7 @@
                                         <&clks IMX27_CLK_DMA_AHB_GATE>;
                                clock-names = "ipg", "ahb";
                                #dma-cells = <1>;
-                               #dma-channels = <16>;
+                               dma-channels = <16>;
                        };
 
                        wdog: watchdog@10002000 {
index 7e2b0f1..1053b7c 100644 (file)
                                pinctrl-0 = <&spi2_pins_a>;
                                status = "okay";
 
-                               flash: m25p80@0 {
+                               flash: flash@0 {
                                        #address-cells = <1>;
                                        #size-cells = <1>;
                                        compatible = "sst,sst25vf016b", "jedec,spi-nor";
index f3bddc5..13acdc7 100644 (file)
@@ -33,7 +33,7 @@
                                pinctrl-0 = <&spi2_pins_a>;
                                status = "okay";
 
-                               flash: m25p80@0 {
+                               flash: flash@0 {
                                        #address-cells = <1>;
                                        #size-cells = <1>;
                                        compatible = "m25p80", "jedec,spi-nor";
index 43be7a6..90928db 100644 (file)
@@ -51,7 +51,7 @@
                                pinctrl-0 = <&spi2_pins_a>;
                                status = "okay";
 
-                               flash: m25p80@0 {
+                               flash: flash@0 {
                                        #address-cells = <1>;
                                        #size-cells = <1>;
                                        compatible = "everspin,mr25h256", "mr25h256";
index aab8d6f..10cae7c 100644 (file)
        chosen {
                stdout-path = &uart1;
        };
+
+       usbphy1: usbphy1 {
+               compatible = "usb-nop-xceiv";
+               clocks = <&clks IMX5_CLK_USB_PHY_GATE>;
+               clock-names = "main_clk";
+               #phy-cells = <0>;
+       };
 };
 
 &esdhc1 {
@@ -63,6 +70,7 @@
 &usbh1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbh1>;
+       fsl,usbphy = <&usbphy1>;
        dr_mode = "host";
        phy_type = "ulpi";
        disable-over-current;
index 7d49704..f0809a1 100644 (file)
 
                regulators {
                        sw1_reg: sw1 {
-                               regulator-min-microvolt = <1000000>;
+                               regulator-min-microvolt = <1050000>;
                                regulator-max-microvolt = <1100000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        sw2_reg: sw2 {
-                               regulator-min-microvolt = <1225000>;
-                               regulator-max-microvolt = <1225000>;
+                               regulator-min-microvolt = <1175000>;
+                               regulator-max-microvolt = <1275000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        sw3_reg: sw3 {
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <1200000>;
+                               regulator-min-microvolt = <1150000>;
+                               regulator-max-microvolt = <1350000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
                                regulator-always-on;
                        };
 
-                       vgen1_reg: vgen1 {
-                               regulator-min-microvolt = <1200000>;
-                               regulator-max-microvolt = <1200000>;
-                               regulator-always-on;
-                       };
-
-                       vgen2_reg: vgen2 {
-                               regulator-min-microvolt = <3150000>;
-                               regulator-max-microvolt = <3150000>;
-                               regulator-always-on;
-                       };
-
                        vgen3_reg: vgen3 {
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <1800000>;
                                regulator-always-on;
                        };
 
-                       gpo1_reg: gpo1 { };
-
                        gpo2_reg: gpo2 { };
 
                        gpo3_reg: gpo3 { };
 &usbotg {
        phy_type = "utmi_wide";
        disable-over-current;
+       vbus-supply = <&swbst_reg>;
        /* Device role is not known, keep status disabled */
 };
 
index 56c8d87..1e20a66 100644 (file)
                                        clocks = <&clks IMX5_CLK_UART3_IPG_GATE>,
                                                 <&clks IMX5_CLK_UART3_PER_GATE>;
                                        clock-names = "ipg", "per";
+                                       dmas = <&sdma 43 5 1>, <&sdma 44 5 2>;
+                                       dma-names = "rx", "tx";
                                        status = "disabled";
                                };
 
                                clocks = <&clks IMX5_CLK_UART1_IPG_GATE>,
                                         <&clks IMX5_CLK_UART1_PER_GATE>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 18 4 1>, <&sdma 19 4 2>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                                clocks = <&clks IMX5_CLK_UART2_IPG_GATE>,
                                         <&clks IMX5_CLK_UART2_PER_GATE>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma 16 4 1>, <&sdma 17 4 2>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
diff --git a/arch/arm/boot/dts/imx6dl-colibri-aster.dts b/arch/arm/boot/dts/imx6dl-colibri-aster.dts
new file mode 100644 (file)
index 0000000..74e8a6c
--- /dev/null
@@ -0,0 +1,113 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx6dl.dtsi"
+#include "imx6qdl-colibri.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6DL/S on Colibri Aster Board";
+       compatible = "toradex,colibri_imx6dl-aster", "toradex,colibri_imx6dl",
+                    "fsl,imx6dl";
+
+       aliases {
+               i2c0 = &i2c2;
+               i2c1 = &i2c3;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+/* Colibri SSP */
+&ecspi4 {
+       cs-gpios = <
+               &gpio5 2 GPIO_ACTIVE_HIGH
+               &gpio5 4 GPIO_ACTIVE_HIGH
+       >;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi4 &pinctrl_csi_gpio_2>;
+       status = "okay";
+};
+
+/* Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 */
+&i2c3 {
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &pinctrl_csi_gpio_1
+               &pinctrl_gpio_2
+               &pinctrl_gpio_aster
+               &pinctrl_usbh_oc_1
+               &pinctrl_usbc_id_1
+               &pinctrl_weim_gpio_5
+       >;
+
+       pinctrl_gpio_aster: gpioaster {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x1b0b0
+                       MX6QDL_PAD_NANDF_D1__GPIO2_IO01         0x1b0b0
+                       MX6QDL_PAD_NANDF_D3__GPIO2_IO03         0x1b0b0
+                       MX6QDL_PAD_NANDF_D6__GPIO2_IO06         0x1b0b0
+                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08         0x1b0b0
+                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11         0x1b0b0
+               >;
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&reg_usb_host_vbus {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_host_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       status = "okay";
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       status = "okay";
+};
index 7da74e6..7272edd 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: GPL-2.0+ OR MIT
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2014-2020 Toradex
+ * Copyright 2014-2022 Toradex
  * Copyright 2012 Freescale Semiconductor, Inc.
  * Copyright 2011 Linaro Ltd.
  */
        compatible = "toradex,colibri_imx6dl-eval-v3", "toradex,colibri_imx6dl",
                     "fsl,imx6dl";
 
-       /* Will be filled by the bootloader */
-       memory@10000000 {
-               device_type = "memory";
-               reg = <0x10000000 0>;
-       };
-
        aliases {
                i2c0 = &i2c2;
                i2c1 = &i2c3;
                clock-frequency = <16000000>;
                clock-output-names = "clk16m";
        };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_gpio_keys>;
-
-               wakeup {
-                       label = "Wake-Up";
-                       gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* SODIMM 45 */
-                       linux,code = <KEY_WAKEUP>;
-                       debounce-interval = <10>;
-                       wakeup-source;
-               };
-       };
-
-       lcd_display: disp0 {
-               compatible = "fsl,imx-parallel-display";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               interface-pix-fmt = "bgr666";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_ipu1_lcdif>;
-               status = "okay";
-
-               port@0 {
-                       reg = <0>;
-
-                       lcd_display_in: endpoint {
-                               remote-endpoint = <&ipu1_di0_disp0>;
-                       };
-               };
-
-               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>;
-                       };
-               };
-       };
-};
-
-&backlight {
-       brightness-levels = <0 127 191 223 239 247 251 255>;
-       default-brightness-level = <1>;
-       status = "okay";
 };
 
 /* Colibri SSP */
 
        mcp251x0: mcp251x@0 {
                compatible = "microchip,mcp2515";
-               reg = <0>;
                clocks = <&clk16m>;
                interrupt-parent = <&gpio3>;
                interrupts = <27 0x2>;
+               reg = <0>;
                spi-max-frequency = <10000000>;
                status = "okay";
        };
 };
 
-&hdmi {
-       status = "okay";
-};
-
 /*
  * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
  */
 &i2c3 {
        status = "okay";
 
-       /*
-        * Touchscreen is using SODIMM 28/30, also used for PWM<B>, PWM<C>,
-        * aka pwm2, pwm3. so if you enable touchscreen, disable the pwms
-        */
-       touchscreen@4a {
-               compatible = "atmel,maxtouch";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_pcap_1>;
-               reg = <0x4a>;
-               interrupt-parent = <&gpio1>;
-               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;         /* SODIMM 28 */
-               reset-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;      /* SODIMM 30 */
-               status = "disabled";
-       };
-
        /* M41T0M6 real time clock on carrier board */
        rtc_i2c: rtc@68 {
                compatible = "st,m41t0";
                &pinctrl_weim_gpio_5 &pinctrl_weim_gpio_6
                &pinctrl_usbh_oc_1 &pinctrl_usbc_id_1
        >;
-
-       pinctrl_pcap_1: pcap1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_GPIO_9__GPIO1_IO09   0x1b0b0 /* SODIMM 28 */
-                       MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0x1b0b0 /* SODIMM 30 */
-               >;
-       };
-
-       pinctrl_mxt_ts: mxttsgrp {
-               fsl,pins = <
-                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24  0x130b0 /* SODIMM 107 */
-                       MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0x130b0 /* SODIMM 106 */
-               >;
-       };
-};
-
-&ipu1_di0_disp0 {
-       remote-endpoint = <&lcd_display_in>;
 };
 
 &pwm1 {
diff --git a/arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts b/arch/arm/boot/dts/imx6dl-colibri-iris-v2.dts
new file mode 100644 (file)
index 0000000..3a6d388
--- /dev/null
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6dl-colibri-iris.dts"
+
+/ {
+       model = "Toradex Colibri iMX6DL/S on Colibri Iris V2 Board";
+       compatible = "toradex,colibri_imx6dl-iris-v2", "toradex,colibri_imx6dl",
+                    "fsl,imx6dl";
+
+       reg_3v3_vmmc: regulator-3v3-vmmc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_enable_3v3_vmmc>;
+               regulator-name = "3v3_vmmc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <100>;
+               enable-active-high;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_iris &pinctrl_usbh_oc_1 &pinctrl_usbc_id_1>;
+
+       pinctrl_enable_3v3_vmmc: enable3v3vmmcgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11 0x1b0b0
+               >;
+       };
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       cap-power-off-card;
+       /* uncomment the following to enable SD card UHS mode if you have a V1.1 module */
+       /* /delete-property/ no-1-8-v; */
+       vmmc-supply = <&reg_3v3_vmmc>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6dl-colibri-iris.dts b/arch/arm/boot/dts/imx6dl-colibri-iris.dts
new file mode 100644 (file)
index 0000000..cf77d89
--- /dev/null
@@ -0,0 +1,152 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include "imx6dl.dtsi"
+#include "imx6qdl-colibri.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6DL/S on Colibri Iris Board";
+       compatible = "toradex,colibri_imx6dl-iris", "toradex,colibri_imx6dl",
+                    "fsl,imx6dl";
+
+       aliases {
+               i2c0 = &i2c2;
+               i2c1 = &i2c3;
+       };
+
+       aliases {
+               rtc0 = &rtc_i2c;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+};
+
+/* Colibri SSP */
+&ecspi4 {
+       status = "okay";
+};
+
+&gpio2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1_forceoff &pinctrl_uart23_forceoff>;
+
+       /*
+        * uart-a-on-x13-enable turns the UART transceiver for UART_A on. If one
+        * wants to turn the transceiver off, that property has to be deleted
+        * and the gpio handled in userspace.
+        * The same applies to uart-b-c-on-x14-enable where the UART_B and
+        * UART_C transceiver is turned on.
+        */
+       uart-a-on-x13-enable-hog {
+               gpio-hog;
+               gpios = <4 GPIO_ACTIVE_HIGH>; /* SODIMM 102 */
+               output-high;
+       };
+
+       uart-b-c-on-x14-enable-hog {
+               gpio-hog;
+               gpios = <8 GPIO_ACTIVE_HIGH>; /* SODIMM 104 */
+               output-high;
+       };
+};
+
+/*
+ * Colibri I2C: I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board)
+ */
+&i2c3 {
+       status = "okay";
+
+       rtc_i2c: rtc@68 {
+               compatible = "st,m41t0";
+               reg = <0x68>;
+       };
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+               &pinctrl_gpio_iris
+               &pinctrl_usbh_oc_1
+               &pinctrl_usbc_id_1
+       >;
+
+       pinctrl_gpio_iris: gpioirisgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A17__GPIO2_IO21  0x1b0b0
+                       MX6QDL_PAD_EIM_A18__GPIO2_IO20  0x1b0b0
+                       MX6QDL_PAD_EIM_A19__GPIO2_IO19  0x1b0b0
+                       MX6QDL_PAD_EIM_A20__GPIO2_IO18  0x1b0b0
+                       MX6QDL_PAD_EIM_A23__GPIO6_IO06  0x1b0b0
+                       MX6QDL_PAD_EIM_D27__GPIO3_IO27  0x1b0b0
+                       MX6QDL_PAD_NANDF_D3__GPIO2_IO03 0x1b0b0
+                       MX6QDL_PAD_SD2_DAT0__GPIO1_IO15 0x1b0b0
+               >;
+       };
+
+       pinctrl_uart1_forceoff: uart1forceoffgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_D4__GPIO2_IO04 0x1b0b0
+               >;
+       };
+
+       pinctrl_uart23_forceoff: uart23forceoffgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08 0x1b0b0
+               >;
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&pwm3 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&reg_usb_host_vbus {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart3 {
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_host_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       status = "okay";
+};
+
+/* Colibri MMC */
+&usdhc1 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts b/arch/arm/boot/dts/imx6dl-colibri-v1_1-eval-v3.dts
deleted file mode 100644 (file)
index 223275f..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+ OR MIT
-/*
- * Copyright 2020 Toradex
- */
-
-/dts-v1/;
-
-#include "imx6dl-colibri-eval-v3.dts"
-#include "imx6qdl-colibri-v1_1-uhs.dtsi"
-
-/ {
-       model = "Toradex Colibri iMX6DL/S V1.1 on Colibri Evaluation Board V3";
-       compatible = "toradex,colibri_imx6dl-v1_1-eval-v3",
-                    "toradex,colibri_imx6dl-v1_1",
-                    "toradex,colibri_imx6dl-eval-v3",
-                    "toradex,colibri_imx6dl",
-                    "fsl,imx6dl";
-};
-
-/* Colibri MMC */
-&usdhc1 {
-       status = "okay";
-       /*
-        * Please make sure your carrier board does not pull-up any of
-        * the MMC/SD signals to 3.3 volt before attempting to activate
-        * UHS-I support.
-        * To let signaling voltage be changed to 1.8V, please
-        * delete no-1-8-v property (example below):
-        * /delete-property/no-1-8-v;
-        */
-};
index b4a9523..864dc50 100644 (file)
        phy-mode = "rmii";
        phy-reset-gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
        phy-handle = <&phy>;
-       clocks = <&clks IMX6QDL_CLK_ENET>, <&clks IMX6QDL_CLK_ENET>, <&rmii_clk>;
+       clocks = <&clks IMX6QDL_CLK_ENET>,
+                <&clks IMX6QDL_CLK_ENET>,
+                <&rmii_clk>,
+                <&clks IMX6QDL_CLK_ENET_REF>;
+       clock-names = "ipg", "ahb", "ptp", "enet_out";
        status = "okay";
 
        mdio {
index bf72a67..c52e6ca 100644 (file)
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        linux,rs485-enabled-at-boot-time;
        rs485-rts-delay = <0 20>;
        status = "okay";
index 0f1616b..b72f8ea 100644 (file)
@@ -19,7 +19,7 @@
 };
 
 &ecspi3 {
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "sst,sst25vf016b", "jedec,spi-nor";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 227c952..516ec91 100644 (file)
@@ -5,46 +5,13 @@
  */
 
 /dts-v1/;
-#include <dt-bindings/display/sdtv-standards.h>
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/media/tvp5150.h>
-#include <dt-bindings/sound/fsl-imx-audmux.h>
 #include "imx6dl.dtsi"
+#include "imx6qdl-vicut1.dtsi"
 
 / {
        model = "Kverneland TGO";
        compatible = "kvg,victgo", "fsl,imx6dl";
 
-       chosen {
-               stdout-path = &uart4;
-       };
-
-       backlight: backlight {
-               compatible = "pwm-backlight";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_backlight>;
-               pwms = <&pwm1 0 5000000 0>;
-               brightness-levels = <0 16 64 255>;
-               num-interpolated-steps = <16>;
-               default-brightness-level = <1>;
-               power-supply = <&reg_3v3>;
-               enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
-       };
-
-       connector {
-               compatible = "composite-video-connector";
-               label = "Composite0";
-               sdtv-standards = <SDTV_STD_PAL_B>;
-
-               port {
-                       comp0_out: endpoint {
-                               remote-endpoint = <&tvp5150_comp0_in>;
-                       };
-               };
-       };
-
        gpio-keys {
                compatible = "gpio-keys";
                pinctrl-names = "default";
                io-channels = <&vdiv_vaccu>, <&vdiv_hitch_pos>;
        };
 
-       leds {
-               compatible = "gpio-leds";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_leds>;
-
-               led-0 {
-                       label = "debug0";
-                       function = LED_FUNCTION_HEARTBEAT;
-                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "heartbeat";
-               };
-
-               led-1 {
-                       label = "debug1";
-                       function = LED_FUNCTION_DISK;
-                       gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
-                       linux,default-trigger = "disk-activity";
-               };
-
-               led-2 {
-                       label = "power_led";
-                       function = LED_FUNCTION_POWER;
-                       gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
-                       default-state = "on";
-               };
-       };
-
        panel {
-               compatible = "kyo,tcg121xglp";
-               backlight = <&backlight>;
+               compatible = "lg,lb070wv8";
+               backlight = <&backlight_lcd>;
                power-supply = <&reg_3v3>;
 
                port {
                clock-frequency = <50000000>;
        };
 
-       reg_1v8: regulator-1v8 {
-               compatible = "regulator-fixed";
-               regulator-name = "1v8";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-       };
-
-       reg_3v3: regulator-3v3 {
-               compatible = "regulator-fixed";
-               regulator-name = "3v3";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-       };
-
-       reg_h1_vbus: regulator-h1-vbus {
-               compatible = "regulator-fixed";
-               regulator-name = "h1-vbus";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               gpio = <&gpio1 0 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
-       reg_otg_vbus: regulator-otg-vbus {
-               compatible = "regulator-fixed";
-               regulator-name = "otg-vbus";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
        rotary-encoder {
                compatible = "rotary-encoder";
                pinctrl-0 = <&pinctrl_rotary_ch>;
                wakeup-source;
        };
 
-       sound {
-               compatible = "simple-audio-card";
-               simple-audio-card,name = "prti6q-sgtl5000";
-               simple-audio-card,format = "i2s";
-               simple-audio-card,widgets =
-                       "Microphone", "Microphone Jack",
-                       "Line", "Line In Jack",
-                       "Headphone", "Headphone Jack",
-                       "Speaker", "External Speaker";
-               simple-audio-card,routing =
-                       "MIC_IN", "Microphone Jack",
-                       "LINE_IN", "Line In Jack",
-                       "Headphone Jack", "HP_OUT",
-                       "External Speaker", "LINE_OUT";
-
-               simple-audio-card,cpu {
-                       sound-dai = <&ssi1>;
-                       system-clock-frequency = <0>;
-               };
-
-               simple-audio-card,codec {
-                       sound-dai = <&codec>;
-                       bitclock-master;
-                       frame-master;
-               };
-       };
-
        thermal-zones {
                chassis-thermal {
                        polling-delay = <20000>;
                               <&adc_ts 5>;
                io-channel-names = "y", "z1", "z2", "x";
                touchscreen-min-pressure = <64687>;
-               touchscreen-inverted-x;
                touchscreen-inverted-y;
                touchscreen-x-plate-ohms = <300>;
                touchscreen-y-plate-ohms = <800>;
        };
 };
 
-&audmux {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_audmux>;
-       status = "okay";
-
-       mux-ssi1 {
-               fsl,audmux-port = <0>;
-               fsl,port-config = <
-                       IMX_AUDMUX_V2_PTCR_SYN          0
-                       IMX_AUDMUX_V2_PTCR_TFSEL(2)     0
-                       IMX_AUDMUX_V2_PTCR_TCSEL(2)     0
-                       IMX_AUDMUX_V2_PTCR_TFSDIR       0
-                       IMX_AUDMUX_V2_PTCR_TCLKDIR      IMX_AUDMUX_V2_PDCR_RXDSEL(2)
-               >;
-       };
-
-       mux-pins3 {
-               fsl,audmux-port = <2>;
-               fsl,port-config = <
-                       IMX_AUDMUX_V2_PTCR_SYN          IMX_AUDMUX_V2_PDCR_RXDSEL(0)
-                       0                               IMX_AUDMUX_V2_PDCR_TXRXEN
-               >;
-       };
-};
-
-&can1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_can1>;
-       status = "okay";
-};
-
-&can2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_can2>;
-       status = "okay";
-};
-
-&clks {
-       assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>;
-       assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>;
-};
-
-&ecspi1 {
-       cs-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_ecspi1>;
-       status = "okay";
-
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               reg = <0>;
-               spi-max-frequency = <20000000>;
-       };
-};
-
 &ecspi2 {
        cs-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
        pinctrl-names = "default";
                        "CAM2_MIRROR", "", "", "SMBALERT",
                "DEBUG_0", "DEBUG_1", "", "", "", "", "", "",
                "SD1_DATA0", "SD1_DATA1", "SD1_CMD", "SD1_DATA2", "SD1_CLK",
-                       "SD1_DATA3", "", "",
-               "", "", "", "", "", "", "", "";
-};
-
-&gpio2 {
-       gpio-line-names =
-               "", "", "", "", "", "", "", "",
-               "REV_ID0", "REV_ID1", "REV_ID2", "REV_ID3", "REV_ID4",
-                       "BOARD_ID0", "BOARD_ID1", "BOARD_ID2",
-               "", "", "", "", "", "", "ISB_IN1", "ON_SWITCH",
-               "POWER_LED", "", "", "", "", "", "", "";
-};
-
-&gpio3 {
-       gpio-line-names =
-               "", "", "", "", "", "", "", "",
-               "", "", "", "", "", "", "", "",
-               "ECSPI1_SCLK", "ECSPI1_MISO", "ECSPI1_MOSI", "ECSPI1_SS1",
-                       "CPU_ON1_FB", "USB_EXT1_OC", "USB_EXT1_PWR", "YACO_IRQ",
-               "TSS_TXD", "TSS_RXD", "", "", "", "", "YACO_BOOT0",
-                       "YACO_RESET";
+                       "SD1_DATA3", "ETH_MDIO", "",
+               "", "", "", "", "", "", "", "ETH_MDC";
 };
 
 &gpio4 {
        gpio-line-names =
-               "", "", "", "", "", "", "", "",
-               "", "", "", "", "CAN1_SR", "CAN2_SR", "CAN2_TX", "CAN2_RX",
-               "", "", "DIP1_FB", "", "VCAM_EN", "", "", "",
-               "CPU_LIGHT_ON", "", "ETH_RESET", "CPU_CONTACT_IN", "BL_EN",
-                       "BL_PWM", "ETH_INTRP", "ISB_LED";
+               "", "", "", "", "", "", "UART4_TXD", "UART4_RXD",
+               "UART5_TXD", "UART5_RXD", "CAN1_TX", "CAN1_RX", "CAN1_SR",
+                       "CAN2_SR", "CAN2_TX", "CAN2_RX",
+               "", "", "DIP1_FB", "", "VCAM_EN", "ON1_CTRL", "ON2_CTRL",
+                       "HITCH_IN_OUT",
+               "LIGHT_ON", "", "ETH_RESET", "CONTACT_IN", "BL_EN",
+                       "BL_PWM", "ETH_INT", "ISB_LED";
 };
 
 &gpio5 {
                "", "", "", "", "", "", "", "",
                "TSC_PENIRQ", "TSC_BUSY", "ECSPI2_MOSI", "ECSPI2_MISO",
                        "ECSPI2_SS0", "ECSPI2_SCLK", "", "",
-               "", "", "", "", "", "", "", "",
+               "", "", "ITU656_CLK", "I2S_MCLK", "ITU656_PDN", "AUDIO_RESET",
+                       "I2S_BITCLK", "I2S_DOUT",
                "I2S_LRCLK", "I2S_DIN", "I2C1_SDA", "I2C1_SCL", "YACO_AUX_RX",
                        "YACO_AUX_TX", "ITU656_D0", "ITU656_D1";
 };
 
-&i2c1 {
-       clock-frequency = <100000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_i2c1>;
-       status = "okay";
-
-       codec: audio-codec@a {
-               compatible = "fsl,sgtl5000";
-               reg = <0xa>;
-               #sound-dai-cells = <0>;
-               clocks = <&clks 201>;
-               VDDA-supply = <&reg_3v3>;
-               VDDIO-supply = <&reg_3v3>;
-               VDDD-supply = <&reg_1v8>;
-       };
-
-       video-decoder@5c {
-               compatible = "ti,tvp5150";
-               reg = <0x5c>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               port@0 {
-                       reg = <0>;
-
-                       tvp5150_comp0_in: endpoint {
-                               remote-endpoint = <&comp0_out>;
-                       };
-               };
-
-               /* Output port 2 is video output pad */
-               port@2 {
-                       reg = <2>;
-
-                       tvp5151_to_ipu1_csi0_mux: endpoint {
-                               remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
-                       };
-               };
-       };
+&gpio6 {
+       gpio-line-names =
+               "ITU656_D2", "ITU656_D3", "ITU656_D4", "ITU656_D5",
+                       "ITU656_D6", "ITU656_D7", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
 
+&i2c1 {
        keypad@70 {
                compatible = "holtek,ht16k33";
                pinctrl-names = "default";
                        MATRIX_KEY(6, 1, KEY_F1)
                      >;
        };
-
-       /* additional i2c devices are added automatically by the boot loader */
-};
-
-&i2c3 {
-       clock-frequency = <100000>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_i2c3>;
-       status = "okay";
-
-       adc@49 {
-               compatible = "ti,ads1015";
-               reg = <0x49>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               channel@4 {
-                       reg = <4>;
-                       ti,gain = <3>;
-                       ti,datarate = <3>;
-               };
-
-               channel@5 {
-                       reg = <5>;
-                       ti,gain = <3>;
-                       ti,datarate = <3>;
-               };
-
-               channel@6 {
-                       reg = <6>;
-                       ti,gain = <3>;
-                       ti,datarate = <3>;
-               };
-
-               channel@7 {
-                       reg = <7>;
-                       ti,gain = <3>;
-                       ti,datarate = <3>;
-               };
-       };
-
-       rtc@51 {
-               compatible = "nxp,pcf8563";
-               reg = <0x51>;
-       };
-
-       tsens0: temperature-sensor@70 {
-               compatible = "ti,tmp103";
-               reg = <0x70>;
-               #thermal-sensor-cells = <0>;
-       };
-};
-
-&ipu1_csi0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_ipu1_csi0>;
-       status = "okay";
-};
-
-&ipu1_csi0_mux_from_parallel_sensor {
-       remote-endpoint = <&tvp5151_to_ipu1_csi0_mux>;
-};
-
-&ldb {
-       status = "okay";
-
-       lvds-channel@0 {
-               status = "okay";
-
-               port@4 {
-                       reg = <4>;
-
-                       lvds0_out: endpoint {
-                               remote-endpoint = <&panel_in>;
-                       };
-               };
-       };
-};
-
-&pwm1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
-};
-
-&pwm3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pwm3>;
-       status = "okay";
-};
-
-&ssi1 {
-       #sound-dai-cells = <0>;
-       fsl,mode = "ac97-slave";
-       status = "okay";
-};
-
-&uart1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart1>;
-       status = "okay";
-};
-
-&uart2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart2>;
-       status = "okay";
-};
-
-&uart3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart3>;
-       status = "okay";
-};
-
-&uart4 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart4>;
-       status = "okay";
-};
-
-&uart5 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart5>;
-       status = "okay";
-};
-
-&usbh1 {
-       vbus-supply = <&reg_h1_vbus>;
-       pinctrl-names = "default";
-       phy_type = "utmi";
-       dr_mode = "host";
-       status = "okay";
-};
-
-&usbotg {
-       vbus-supply = <&reg_otg_vbus>;
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usbotg>;
-       phy_type = "utmi";
-       dr_mode = "host";
-       disable-over-current;
-       status = "okay";
-};
-
-&usdhc1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc1>;
-       cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
-       no-1-8-v;
-       disable-wp;
-       cap-sd-highspeed;
-       no-mmc;
-       no-sdio;
-       status = "okay";
-};
-
-&usdhc3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc3>;
-       bus-width = <8>;
-       no-1-8-v;
-       non-removable;
-       no-sd;
-       no-sdio;
-       status = "okay";
 };
 
 &iomuxc {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_hog>;
-
-       pinctrl_audmux: audmuxgrp {
-               fsl,pins = <
-                       /* SGTL5000 sys_mclk */
-                       MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1                 0x030b0
-                       MX6QDL_PAD_CSI0_DAT7__AUD3_RXD                  0x130b0
-                       MX6QDL_PAD_CSI0_DAT4__AUD3_TXC                  0x130b0
-                       MX6QDL_PAD_CSI0_DAT5__AUD3_TXD                  0x110b0
-                       MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS                 0x130b0
-               >;
-       };
-
-       pinctrl_backlight: backlightgrp {
-               fsl,pins = <
-                       MX6QDL_PAD_DISP0_DAT7__GPIO4_IO28               0x1b0b0
-               >;
-       };
-
-       pinctrl_can1: can1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX                0x1b000
-                       MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX                0x3008
-                       /* CAN1_SR */
-                       MX6QDL_PAD_KEY_COL3__GPIO4_IO12                 0x13008
-                       /* CAN1_TERM */
-                       MX6QDL_PAD_GPIO_0__GPIO1_IO00                   0x1b088
-               >;
-       };
-
-       pinctrl_can2: can2grp {
-               fsl,pins = <
-                       MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX                0x1b000
-                       MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX                0x3008
-                       /* CAN2_SR */
-                       MX6QDL_PAD_KEY_ROW3__GPIO4_IO13                 0x13008
-               >;
-       };
-
-       pinctrl_ecspi1: ecspi1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_EIM_D17__ECSPI1_MISO                 0x100b1
-                       MX6QDL_PAD_EIM_D18__ECSPI1_MOSI                 0x100b1
-                       MX6QDL_PAD_EIM_D16__ECSPI1_SCLK                 0x100b1
-                       /* CS */
-                       MX6QDL_PAD_EIM_D19__GPIO3_IO19                  0x000b1
-               >;
-       };
-
        pinctrl_ecspi2: ecspi2grp {
                fsl,pins = <
                        MX6QDL_PAD_DISP0_DAT16__ECSPI2_MOSI             0x100b1
                >;
        };
 
-       pinctrl_hog: hoggrp {
-               fsl,pins = <
-                       /* ITU656_nRESET */
-                       MX6QDL_PAD_GPIO_2__GPIO1_IO02                   0x1b0b0
-                       /* CAM1_MIRROR */
-                       MX6QDL_PAD_GPIO_3__GPIO1_IO03                   0x130b0
-                       /* CAM2_MIRROR */
-                       MX6QDL_PAD_GPIO_4__GPIO1_IO04                   0x130b0
-                       /* CAM_nDETECT */
-                       MX6QDL_PAD_GPIO_17__GPIO7_IO12                  0x1b0b0
-                       /* ISB_IN1 */
-                       MX6QDL_PAD_EIM_A16__GPIO2_IO22                  0x130b0
-                       /* ISB_nIN2 */
-                       MX6QDL_PAD_EIM_A17__GPIO2_IO21                  0x1b0b0
-                       /* WARN_LIGHT */
-                       MX6QDL_PAD_EIM_A19__GPIO2_IO19                  0x100b0
-                       /* ON2_FB */
-                       MX6QDL_PAD_EIM_A25__GPIO5_IO02                  0x100b0
-                       /* YACO_nIRQ */
-                       MX6QDL_PAD_EIM_D23__GPIO3_IO23                  0x1b0b0
-                       /* YACO_BOOT0 */
-                       MX6QDL_PAD_EIM_D30__GPIO3_IO30                  0x130b0
-                       /* YACO_nRESET */
-                       MX6QDL_PAD_EIM_D31__GPIO3_IO31                  0x1b0b0
-                       /* FORCE_ON1 */
-                       MX6QDL_PAD_EIM_EB2__GPIO2_IO30                  0x1b0b0
-                       /* AUDIO_nRESET */
-                       MX6QDL_PAD_CSI0_VSYNC__GPIO5_IO21               0x1f0b0
-                       /* ITU656_nPDN */
-                       MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20             0x1b0b0
-
-                       /* HW revision detect */
-                       /* REV_ID0 */
-                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08                 0x1b0b0
-                       /* REV_ID1 is shared with PWM3 */
-                       /* REV_ID2 */
-                       MX6QDL_PAD_SD4_DAT2__GPIO2_IO10                 0x1b0b0
-                       /* REV_ID3 */
-                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11                 0x1b0b0
-                       /* REV_ID4 */
-                       MX6QDL_PAD_SD4_DAT4__GPIO2_IO12                 0x1b0b0
-
-                       /* New in HW revision 1 */
-                       /* ON1_FB */
-                       MX6QDL_PAD_EIM_D20__GPIO3_IO20                  0x100b0
-                       /* DIP1_FB */
-                       MX6QDL_PAD_DI0_PIN2__GPIO4_IO18                 0x1b0b0
-               >;
-       };
-
-       pinctrl_i2c1: i2c1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_CSI0_DAT8__I2C1_SDA          0x4001f8b1
-                       MX6QDL_PAD_CSI0_DAT9__I2C1_SCL          0x4001f8b1
-               >;
-       };
-
-       pinctrl_i2c3: i2c3grp {
-               fsl,pins = <
-                       MX6QDL_PAD_GPIO_5__I2C3_SCL             0x4001b8b1
-                       MX6QDL_PAD_GPIO_6__I2C3_SDA             0x4001b8b1
-               >;
-       };
-
-       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_PIXCLK__IPU1_CSI0_PIXCLK        0x1b0b0
-               >;
-       };
-
        pinctrl_keypad: keypadgrp {
                fsl,pins = <
                        MX6QDL_PAD_GPIO_19__GPIO4_IO05                  0x1b0b0
                >;
        };
 
-       pinctrl_leds: ledsgrp {
-               fsl,pins = <
-                       /* DEBUG0 */
-                       MX6QDL_PAD_DI0_DISP_CLK__GPIO4_IO16             0x1b0b0
-                       /* DEBUG1 */
-                       MX6QDL_PAD_DI0_PIN15__GPIO4_IO17                0x1b0b0
-                       /* POWER_LED */
-                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24                  0x1b0b0
-               >;
-       };
-
-       pinctrl_pwm1: pwm1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_DISP0_DAT8__PWM1_OUT                 0x1b0b0
-               >;
-       };
-
-       pinctrl_pwm3: pwm3grp {
-               fsl,pins = <
-                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT                   0x1b0b0
-               >;
-       };
-
        pinctrl_rotary_ch: rotarychgrp {
                fsl,pins = <
                        MX6QDL_PAD_NANDF_D3__GPIO2_IO03                 0x1b0b0
                        MX6QDL_PAD_DISP0_DAT15__GPIO5_IO09              0x1b0b0
                >;
        };
-
-       /* YaCO AUX Uart */
-       pinctrl_uart1: uart1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA            0x1b0b1
-                       MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA            0x1b0b1
-               >;
-       };
-
-       pinctrl_uart2: uart2grp {
-               fsl,pins = <
-                       MX6QDL_PAD_EIM_D26__UART2_TX_DATA               0x1b0b1
-                       MX6QDL_PAD_EIM_D27__UART2_RX_DATA               0x1b0b1
-               >;
-       };
-
-       /* YaCO Touchscreen UART */
-       pinctrl_uart3: uart3grp {
-               fsl,pins = <
-                       MX6QDL_PAD_EIM_D24__UART3_TX_DATA               0x1b0b1
-                       MX6QDL_PAD_EIM_D25__UART3_RX_DATA               0x1b0b1
-               >;
-       };
-
-       pinctrl_uart4: uart4grp {
-               fsl,pins = <
-                       MX6QDL_PAD_KEY_COL0__UART4_TX_DATA              0x1b0b1
-                       MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA              0x1b0b1
-               >;
-       };
-
-       pinctrl_uart5: uart5grp {
-               fsl,pins = <
-                       MX6QDL_PAD_KEY_COL1__UART5_TX_DATA              0x1b0b1
-                       MX6QDL_PAD_KEY_ROW1__UART5_RX_DATA              0x1b0b1
-               >;
-       };
-
-       pinctrl_usbotg: usbotggrp {
-               fsl,pins = <
-                       MX6QDL_PAD_EIM_D21__USB_OTG_OC                  0x1b0b0
-                       /* power enable, high active */
-                       MX6QDL_PAD_EIM_D22__GPIO3_IO22                  0x1b0b0
-               >;
-       };
-
-       pinctrl_usdhc1: usdhc1grp {
-               fsl,pins = <
-                       MX6QDL_PAD_SD1_CMD__SD1_CMD                     0x170f9
-                       MX6QDL_PAD_SD1_CLK__SD1_CLK                     0x100f9
-                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0                  0x170f9
-                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1                  0x170f9
-                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2                  0x170f9
-                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3                  0x170f9
-                       MX6QDL_PAD_GPIO_1__GPIO1_IO01                   0x1b0b0
-               >;
-       };
-
-       pinctrl_usdhc3: usdhc3grp {
-               fsl,pins = <
-                       MX6QDL_PAD_SD3_CMD__SD3_CMD                     0x17099
-                       MX6QDL_PAD_SD3_CLK__SD3_CLK                     0x10099
-                       MX6QDL_PAD_SD3_DAT0__SD3_DATA0                  0x17099
-                       MX6QDL_PAD_SD3_DAT1__SD3_DATA1                  0x17099
-                       MX6QDL_PAD_SD3_DAT2__SD3_DATA2                  0x17099
-                       MX6QDL_PAD_SD3_DAT3__SD3_DATA3                  0x17099
-                       MX6QDL_PAD_SD3_DAT4__SD3_DATA4                  0x17099
-                       MX6QDL_PAD_SD3_DAT5__SD3_DATA5                  0x17099
-                       MX6QDL_PAD_SD3_DAT6__SD3_DATA6                  0x17099
-                       MX6QDL_PAD_SD3_DAT7__SD3_DATA7                  0x17099
-                       MX6QDL_PAD_SD3_RST__SD3_RESET                   0x1b0b1
-               >;
-       };
 };
index 174fd91..5035d30 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 #include "imx6dl.dtsi"
 #include "imx6qdl-vicut1.dtsi"
+#include "imx6qdl-vicut1-12inch.dtsi"
 
 / {
        model = "Kverneland UT1 Board";
index 6330d75..f266f1b 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: n25q032@0 {
+       flash: flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
diff --git a/arch/arm/boot/dts/imx6q-bosch-acc.dts b/arch/arm/boot/dts/imx6q-bosch-acc.dts
new file mode 100644 (file)
index 0000000..8768222
--- /dev/null
@@ -0,0 +1,779 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Support for the i.MX6-based Bosch ACC board.
+ *
+ * Copyright (C) 2016 Garz & Fricke GmbH
+ * Copyright (C) 2018 DENX Software Engineering GmbH, Heiko Schocher <hs@denx.de>
+ * Copyright (C) 2018 DENX Software Engineering GmbH, Niel Fourie <lusus@denx.de>
+ * Copyright (C) 2019-2021 Bosch Thermotechnik GmbH, Matthias Winker <matthias.winker@bosch.com>
+ * Copyright (C) 2022 DENX Software Engineering GmbH, Philip Oberfichtner <pro@denx.de>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "imx6q.dtsi"
+
+/ {
+       model = "Bosch ACC";
+       compatible = "bosch,imx6q-acc", "fsl,imx6q";
+
+       aliases {
+               i2c0 = &i2c1;
+               i2c1 = &i2c2;
+               i2c2 = &i2c3;
+               mmc0 = &usdhc4;
+               mmc1 = &usdhc2;
+               serial0 = &uart2;
+               serial1 = &uart1;
+       };
+
+       memory@10000000 {
+               device_type = "memory";
+               reg = <0x10000000 0x40000000>;
+       };
+
+       backlight_lvds: backlight-lvds {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 200000>;
+               brightness-levels = <0 61 499 1706 4079 8022 13938 22237 33328 47623 65535>;
+               num-interpolated-steps = <10>;
+               default-brightness-level = <60>;
+               power-supply = <&reg_lcd>;
+       };
+
+       panel {
+               compatible = "dataimage,fg1001l0dsswmg01";
+               backlight = <&backlight_lvds>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&lvds0_out>;
+                       };
+               };
+       };
+
+       refclk: refclk {
+               compatible = "fixed-factor-clock";
+               #clock-cells = <0>;
+               clocks = <&clks IMX6QDL_CLK_CKO2>;
+               clock-div = <1>;
+               clock-mult = <1>;
+               clock-output-names = "12mhz_refclk";
+               assigned-clocks = <&clks IMX6QDL_CLK_CKO>,
+                                 <&clks IMX6QDL_CLK_CKO2>,
+                                 <&clks IMX6QDL_CLK_CKO2_SEL>;
+               assigned-clock-parents = <&clks IMX6QDL_CLK_CKO2>,
+                                        <&clks IMX6QDL_CLK_CKO2_PODF>,
+                                        <&clks IMX6QDL_CLK_OSC>;
+               assigned-clock-rates = <0>, <12000000>, <0>;
+       };
+
+       cpus {
+               cpu0: cpu@0 {
+                       operating-points = <
+                               /* kHz    uV */
+                               1200000 1275000
+                               996000  1225000
+                               852000  1225000
+                               792000  1150000
+                               396000  950000
+                       >;
+                       fsl,soc-operating-points = <
+                               /* ARM kHz  SOC-PU uV */
+                               1200000 1225000
+                               996000  1175000
+                               852000  1175000
+                               792000  1150000
+                               396000  1150000
+                       >;
+               };
+
+               cpu1: cpu@1 {
+                       operating-points = <
+                               /* kHz    uV */
+                               1200000 1275000
+                               996000  1225000
+                               852000  1225000
+                               792000  1150000
+                               396000  950000
+                       >;
+                       fsl,soc-operating-points = <
+                               /* ARM kHz  SOC-PU uV */
+                               1200000 1225000
+                               996000  1175000
+                               852000  1175000
+                               792000  1150000
+                               396000  1150000
+                       >;
+               };
+       };
+
+       pwm-leds {
+               compatible = "pwm-leds";
+
+               led_red: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       max-brightness = <248>;
+                       default-state = "off";
+                       pwms = <&pwm2 0 500000>;
+               };
+
+               led_white: led-1 {
+                       color = <LED_COLOR_ID_WHITE>;
+                       max-brightness = <248>;
+                       default-state = "off";
+                       pwms = <&pwm3 0 500000>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reset_gpio_led>;
+
+               led-2 {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       reg_5p0: regulator-5p0 {
+               compatible = "regulator-fixed";
+               regulator-name = "5p0";
+       };
+
+       reg_vin: regulator-vin {
+               compatible = "regulator-fixed";
+               regulator-name = "VIN";
+               regulator-min-microvolt = <4500000>;
+               regulator-max-microvolt = <4500000>;
+               regulator-always-on;
+               vin-supply = <&reg_5p0>;
+       };
+
+       reg_usb_otg_vbus: regulator-usb-otg-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_usb_h1_vbus: regulator-usb-h1-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_h1_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               vin-supply = <&reg_5p0>;
+       };
+
+       reg_usb_h2_vbus: regulator-usb-h2-vbus {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_h2_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&reg_5p0> ;
+               regulator-always-on;
+       };
+
+       reg_vsnvs: regulator-vsnvs {
+               compatible = "regulator-fixed";
+               regulator-name = "VSNVS_3V0";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+               regulator-always-on;
+               vin-supply = <&reg_5p0>;
+       };
+
+       reg_lcd: regulator-lcd {
+               compatible = "regulator-fixed";
+               regulator-name = "LCD0 POWER";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lcd_enable>;
+               gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+
+       reg_dac: regulator-dac {
+               compatible = "regulator-fixed";
+               regulator-name = "vref_dac";
+               regulator-min-microvolt = <20000>;
+               regulator-max-microvolt = <20000>;
+               vin-supply = <&reg_5p0> ;
+               regulator-boot-on;
+       };
+
+       reg_sw4: regulator-sw4 {
+               compatible = "regulator-fixed";
+               regulator-name = "SW4_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&reg_5p0>;
+       };
+
+       reg_sys: regulator-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "SYS_4V2";
+               regulator-min-microvolt = <4200000>;
+               regulator-max-microvolt = <4200000>;
+               regulator-always-on;
+               vin-supply = <&reg_5p0>;
+       };
+};
+
+&reg_arm {
+       vin-supply = <&sw2_reg>;
+};
+
+&reg_soc {
+       vin-supply = <&sw1c_reg>;
+};
+
+&reg_vdd1p1 {
+       vin-supply = <&reg_vsnvs>;
+};
+
+&reg_vdd2p5 {
+       vin-supply = <&reg_vsnvs>;
+};
+
+&reg_vdd3p0 {
+       vin-supply = <&reg_vsnvs>;
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
+       clocks = <&clks IMX6QDL_CLK_ENET>,
+               <&clks IMX6QDL_CLK_ENET>,
+               <&clks IMX6QDL_CLK_ENET>,
+               <&clks IMX6QDL_CLK_ENET_REF>;
+       clock-names = "ipg", "ahb", "ptp", "enet_out";
+       phy-mode = "rmii";
+       phy-supply = <&reg_sw4>;
+       phy-handle = <&ethphy>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+                       smsc,disable-energy-detect;
+               };
+       };
+};
+
+&gpu_vg {
+       status = "disabled";
+};
+
+&gpu_2d {
+       status = "disabled";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       pmic: pmic@8 {
+               compatible = "fsl,pfuze100";
+               reg = <0x08>;
+
+               regulators {
+                       sw1c_reg: sw1c {
+                               regulator-name = "VDD_SOC (sw1abc)";
+                               regulator-min-microvolt = <1275000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw2_reg: sw2 {
+                               regulator-name = "VDD_ARM (sw2)";
+                               regulator-min-microvolt = <1050000>;
+                               regulator-max-microvolt = <1500000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       sw3a_reg: sw3a {
+                               compatible = "regulator-fixed";
+                               regulator-name = "DDR_1V5a";
+                               regulator-boot-on;
+                               regulator-always-on;
+
+                       };
+
+                       sw3b_reg: sw3b {
+                               compatible = "regulator-fixed";
+                               regulator-name = "DDR_1V5b";
+                               regulator-boot-on;
+                               regulator-always-on;
+
+                       };
+
+                       sw4_reg: sw4 {
+                               regulator-name = "AUX 3V15 (sw4)";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       swbst_reg: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               status = "disabled";
+                       };
+
+                       snvs_reg: vsnvs {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vref_reg: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       vgen1_reg: vgen1 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                               regulator-always-on;
+                       };
+
+                       vgen2_reg: vgen2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                               regulator-always-on;
+                       };
+
+                       vgen3_reg: vgen3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       vgen4_reg: vgen4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vgen5_reg: vgen5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+
+                       vgen6_reg: vgen6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       lm75: sensor@49 {
+               compatible = "national,lm75b";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lm75>;
+               reg = <0x49>;
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+               pagesize = <32>;
+       };
+
+       rtc: rtc@51 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc>;
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       eeprom_ext: eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+               pagesize = <32>;
+       };
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       clock-frequency = <400000>;
+       status = "okay";
+
+       usb3503: usb@8 {
+               compatible = "smsc,usb3503";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb3503>;
+               reg = <0x08>;
+               connect-gpios = <&gpio1 16 GPIO_ACTIVE_HIGH>; /* Old: 0, SS: HIGH */
+               intn-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>; /* Old: 1, SS: HIGH */
+               reset-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; /* Old: 0, SS: HIGH */
+               initial-mode = <1>;
+               clocks = <&refclk>;
+               clock-names = "refclk";
+               refclk-frequency = <12000000>;
+       };
+
+       exc3000: touchscreen@2a {
+               compatible = "eeti,exc3000";
+               reg = <0x2a>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ctouch>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
+               touchscreen-size-x = <4096>;
+               touchscreen-size-y = <4096>;
+       };
+
+       vcnl4035: light-sensor@60 {
+               compatible = "vishay,vcnl4035";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_proximity>;
+               reg = <0x60>;
+       };
+};
+
+&ldb {
+       status = "okay";
+
+       lvds0: lvds-channel@0 {
+               fsl,data-mapping = "spwg";
+               fsl,data-width = <24>;
+
+               port@4 {
+                       reg = <4>;
+
+                       lvds0_out: endpoint {
+                               remote-endpoint = <&panel_in>;
+                       };
+               };
+       };
+};
+
+&pwm1 {
+       #pwm-cells = <2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
+       status = "okay";
+};
+
+&pwm2 {
+       #pwm-cells = <2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2>;
+       status = "okay";
+};
+
+&pwm3 {
+       #pwm-cells = <2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm4 {
+       #pwm-cells = <2>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm4>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       rts-gpios = <&gpio7 8 GPIO_ACTIVE_HIGH>;
+       linux,rs485-enabled-at-boot-time;
+       rs485-rx-during-tx;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&usbh1 {
+       vbus-supply = <&reg_usb_h1_vbus>;
+       status = "okay";
+};
+
+&usbh2 {
+       pinctrl-names = "idle", "active";
+       pinctrl-0 = <&pinctrl_usbh2_idle>;
+       pinctrl-1 = <&pinctrl_usbh2_active>;
+       vbus-supply = <&reg_usb_h2_vbus>;
+       status = "okay";
+};
+
+&usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       vbus-supply = <&reg_usb_otg_vbus>;
+       disable-over-current;
+       dr_mode = "otg";
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       status = "okay";
+};
+
+&usbphynop1 {
+       clocks = <&clks IMX6QDL_CLK_USBPHY1>;
+       clock-names = "main_clk";
+       vcc-supply = <&reg_usb_h1_vbus>;
+};
+
+&usbphynop2 {
+       vcc-supply = <&reg_usb_h2_vbus>;
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       cd-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       enable-sdio-wakeup;
+       voltage-ranges = <3300 3300>;
+       vmmc-supply = <&reg_sw4>;
+       fsl,wp-controller;
+       status = "okay";
+};
+
+&usdhc4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc4>;
+       bus-width = <8>;
+       non-removable;
+       no-1-8-v;
+       keep-power-in-suspend;
+       voltage-ranges = <3300 3300>;
+       vmmc-supply = <&reg_sw4>;
+       fsl,wp-controller;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog1>;
+       fsl,ext-reset-output;
+       timeout-sec=<10>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_enet: enetgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
+                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
+                       MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN      0x1b0b0
+                       MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23     0x1b0b0 /* FEC INT */
+                       MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER       0x1b0b0
+                       MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN       0x0001b098
+                       MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0     0x1b0b0
+                       MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1     0x1b0b0
+                       MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1     0x0001b098
+                       MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0     0x0001b098
+                       MX6QDL_PAD_GPIO_16__ENET_REF_CLK        0x4001b0a8
+               >;
+       };
+
+       pinctrl_reset_gpio_led: reset-gpio-led-grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18              0x1b0b0
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001b8b1
+                       MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001b8b1
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL3__I2C2_SCL 0x4001b810
+                       MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b810
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_5__I2C3_SCL  0x4001b8b1
+                       MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
+               >;
+       };
+
+       pinctrl_lcd_enable: lcdenablegrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D23__GPIO3_IO23  0x1b0b0 /* lcd enable */
+                       MX6QDL_PAD_EIM_D16__GPIO3_IO16  0x1b0b0 /* sel6_8 */
+               >;
+       };
+
+       pinctrl_lm75: lm75grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_ROW0__GPIO4_IO07         0x1b0b0
+               >;
+       };
+
+       pinctrl_proximity: proximitygrp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11  0x1b0b0
+               >;
+       };
+
+       pinctrl_pwm1: pwm1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_DAT3__PWM1_OUT 0x0001b0b0
+               >;
+       };
+
+       pinctrl_pwm2: pwm2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_DAT2__PWM2_OUT 0x0001b0b0
+               >;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_DAT1__PWM3_OUT 0x0001b0b0
+               >;
+       };
+
+       pinctrl_pwm4: pwm4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_CMD__PWM4_OUT 0x0001b0b0
+               >;
+       };
+
+       pinctrl_rtc: rtc-grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x1b0b0 /* RTC INT */
+               >;
+       };
+
+       pinctrl_ctouch: ctouch-grp {
+               fsl,pins = <
+                       MX6QDL_PAD_KEY_COL0__GPIO4_IO06 0x1b0b0 /* CTOUCH_INT */
+                       MX6QDL_PAD_SD1_CLK__GPIO1_IO20 0x0001b0b0 /* CTOUCH_RESET */
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_DAT6__UART1_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_SD3_DAT7__UART1_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x0001b0b0
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD3_DAT4__UART2_RX_DATA 0x1b0b1
+                       MX6QDL_PAD_SD3_DAT5__UART2_TX_DATA 0x1b0b1
+                       MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x1b0b1
+                       MX6QDL_PAD_EIM_D29__UART2_RTS_B 0x1b0b1
+               >;
+       };
+
+       pinctrl_usbh2_idle: usbh2-idle-grp {
+               fsl,pins = <
+                       MX6QDL_PAD_RGMII_TXC__USB_H2_DATA      0x00013018
+                       MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x00013018
+               >;
+       };
+
+       pinctrl_usbh2_active: usbh2-active-grp {
+               fsl,pins = <
+                       MX6QDL_PAD_RGMII_TXC__USB_H2_DATA      0x00013018
+                       MX6QDL_PAD_RGMII_TX_CTL__USB_H2_STROBE 0x00017018
+               >;
+       };
+
+       pinctrl_usb3503: usb3503-grp {
+               fsl,pins = <
+                       MX6QDL_PAD_CSI0_MCLK__CCM_CLKO1    0x00000018
+                       MX6QDL_PAD_GPIO_17__GPIO7_IO12     0x1b0b0 /* USB INT */
+                       MX6QDL_PAD_DISP0_DAT11__GPIO5_IO05 0x0001b0b0 /* USB Reset */
+                       MX6QDL_PAD_SD1_DAT0__GPIO1_IO16    0x1b0b0 /* USB Connect */
+               >;
+       };
+
+       pinctrl_usbotg: usbotggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_1__USB_OTG_ID   0x17059
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD2_CMD__SD2_CMD    0x00017069
+                       MX6QDL_PAD_SD2_CLK__SD2_CLK    0x00010038
+                       MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x00017069
+                       MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x00017069
+                       MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x00017069
+                       MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x00017069
+                       MX6QDL_PAD_GPIO_4__SD2_CD_B    0x0001b0b0
+               >;
+       };
+
+       pinctrl_usdhc4: usdhc4grp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD4_CMD__SD4_CMD    0x00017059
+                       MX6QDL_PAD_SD4_CLK__SD4_CLK    0x00010059
+                       MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x00017059
+                       MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x00017059
+                       MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x00017059
+                       MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x00017059
+                       MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x00017059
+                       MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x00017059
+                       MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x00017059
+                       MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x00017059
+               >;
+       };
+
+       pinctrl_wdog1: wdoggrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_9__WDOG1_B 0x1b0b0
+               >;
+       };
+};
index 1092237..ead8309 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi5>;
        status = "okay";
 
-       m25_eeprom: m25p80@0 {
+       m25_eeprom: flash@0 {
                compatible = "atmel,at25";
                spi-max-frequency = <10000000>;
                size = <0x8000>;
index bfb530f..1ad41c9 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       m25p80@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p", "jedec,spi-nor";
index c713ac0..9591848 100644 (file)
        cs-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "m25p80", "jedec,spi-nor";
                spi-max-frequency = <40000000>;
                reg = <0>;
index 48fb47e..137db38 100644 (file)
@@ -47,7 +47,7 @@
        pinctrl-0 = <&pinctrl_ecspi5>;
        status = "okay";
 
-       m25_eeprom: m25p80@0 {
+       m25_eeprom: flash@0 {
                compatible = "atmel,at25256B", "atmel,at25";
                spi-max-frequency = <20000000>;
                size = <0x8000>;
index 4cde45d..e894fab 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "sst,w25q256", "jedec,spi-nor";
                spi-max-frequency = <30000000>;
                reg = <0>;
index 05ee283..cc18010 100644 (file)
        cs-gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;
        status = "okay";
 
-       m25p80@0 {
+       flash@0 {
                compatible = "microchip,sst25vf016b";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 1767e1a..271f4b2 100644 (file)
@@ -19,7 +19,7 @@
 };
 
 &ecspi3 {
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "sst,sst25vf032b", "jedec,spi-nor";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 0a4e251..dd91aff 100644 (file)
@@ -6,12 +6,9 @@
 /dts-v1/;
 #include "imx6q.dtsi"
 #include "imx6qdl-vicut1.dtsi"
+#include "imx6qdl-vicut1-12inch.dtsi"
 
 / {
        model = "Kverneland UT1Q Board";
        compatible = "kvg,vicut1q", "fsl,imx6q";
 };
-
-&sata {
-       status = "okay";
-};
index e21f6ac..baa197c 100644 (file)
@@ -96,7 +96,7 @@
        pinctrl-0 = <&pinctrl_ecspi4>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q128a11", "jedec,spi-nor";
index 0b90c3f..6b64b2f 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi4>;
        status = "okay";
 
-       flash: m25p80@1 {
+       flash: flash@1 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q128a11", "jedec,spi-nor";
diff --git a/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi b/arch/arm/boot/dts/imx6qdl-colibri-v1_1-uhs.dtsi
deleted file mode 100644 (file)
index 7672fbf..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+ OR MIT
-/*
- * Copyright 2020 Toradex
- */
-
-&iomuxc {
-       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
-               fsl,pins = <
-                       MX6QDL_PAD_SD1_CMD__SD1_CMD    0x170b1
-                       MX6QDL_PAD_SD1_CLK__SD1_CLK    0x100b1
-                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170b1
-                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170b1
-                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170b1
-                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170b1
-               >;
-       };
-
-       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
-               fsl,pins = <
-                       MX6QDL_PAD_SD1_CMD__SD1_CMD    0x170f1
-                       MX6QDL_PAD_SD1_CLK__SD1_CLK    0x100f1
-                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f1
-                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f1
-                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f1
-                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f1
-               >;
-       };
-};
-
-/* Colibri MMC */
-&usdhc1 {
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
-       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>;
-       pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_mmc_cd>;
-       pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_mmc_cd>;
-       vmmc-supply = <&reg_module_3v3>;
-       vqmmc-supply = <&vgen3_reg>;
-       wakeup-source;
-       keep-power-in-suspend;
-       sd-uhs-sdr12;
-       sd-uhs-sdr25;
-       sd-uhs-sdr50;
-       sd-uhs-sdr104;
-};
index 4e2a309..c383e0e 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0+ OR MIT
 /*
- * Copyright 2014-2020 Toradex
+ * Copyright 2014-2022 Toradex
  * Copyright 2012 Freescale Semiconductor, Inc.
  * Copyright 2011 Linaro Ltd.
  */
 
        backlight: backlight {
                compatible = "pwm-backlight";
+               brightness-levels = <0 127 191 223 239 247 251 255>;
+               default-brightness-level = <1>;
+               enable-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* Colibri BL_ON */
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_gpio_bl_on>;
+               power-supply = <&reg_module_3v3>;
                pwms = <&pwm3 0 5000000>;
-               enable-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* Colibri BL_ON */
                status = "disabled";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               wakeup {
+                       debounce-interval = <10>;
+                       gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* SODIMM 45 */
+                       label = "Wake-Up";
+                       linux,code = <KEY_WAKEUP>;
+                       wakeup-source;
+               };
+       };
+
+       lcd_display: disp0 {
+               compatible = "fsl,imx-parallel-display";
+               interface-pix-fmt = "bgr666";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ipu1_lcdif>;
+               status = "disabled";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       lcd_display_in: endpoint {
+                               remote-endpoint = <&ipu1_di0_disp0>;
+                       };
+               };
+
+               port@1 {
+                       reg = <1>;
+
+                       lcd_display_out: endpoint {
+                               remote-endpoint = <&lcd_panel_in>;
+                       };
+               };
+       };
+
+       /* Will be filled by the bootloader */
+       memory@10000000 {
+               device_type = "memory";
+               reg = <0x10000000 0>;
+       };
+
+       panel_dpi: panel-dpi {
+               /*
+                * edt,et057090dhu: EDT 5.7" LCD TFT
+                * edt,et070080dh6: EDT 7.0" LCD TFT
+                */
+               compatible = "edt,et057090dhu";
+               backlight = <&backlight>;
+               status = "disabled";
+
+               port {
+                       lcd_panel_in: endpoint {
+                               remote-endpoint = <&lcd_display_out>;
+                       };
+               };
+       };
+
        reg_module_3v3: regulator-module-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "+V3.3";
 
        reg_usb_host_vbus: regulator-usb-host-vbus {
                compatible = "regulator-fixed";
+               gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* USBH_PEN */
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_regulator_usbh_pwr>;
-               regulator-name = "usb_host_vbus";
-               regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
-               gpio = <&gpio3 31 GPIO_ACTIVE_HIGH>; /* USBH_PEN */
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "usb_host_vbus";
                status = "disabled";
        };
 
        sound {
                compatible = "fsl,imx-audio-sgtl5000";
-               model = "imx6dl-colibri-sgtl5000";
-               ssi-controller = <&ssi1>;
                audio-codec = <&codec>;
                audio-routing =
                        "Headphone Jack", "HP_OUT",
                        "LINE_IN", "Line In Jack",
                        "MIC_IN", "Mic Jack",
                        "Mic Jack", "Mic Bias";
+               model = "imx6dl-colibri-sgtl5000";
                mux-int-port = <1>;
                mux-ext-port = <5>;
+               ssi-controller = <&ssi1>;
        };
 
        /* Optional S/PDIF in on SODIMM 88 and out on SODIMM 90, 137 or 168 */
        sound_spdif: sound-spdif {
                compatible = "fsl,imx-audio-spdif";
-               model = "imx-spdif";
                spdif-controller = <&spdif>;
                spdif-in;
                spdif-out;
+               model = "imx-spdif";
                status = "disabled";
        };
 };
        status = "disabled";
 };
 
+&clks {
+       fsl,pmic-stby-poweroff;
+};
+
 /* Colibri SSP */
 &ecspi4 {
        cs-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
 };
 
 &fec {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_enet>;
        phy-mode = "rmii";
        phy-handle = <&ethphy>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
        status = "okay";
 
        mdio {
        };
 };
 
+&gpio1 {
+       gpio-line-names = "",
+                         "SODIMM_67",
+                         "SODIMM_180",
+                         "SODIMM_196",
+                         "SODIMM_174",
+                         "SODIMM_176",
+                         "SODIMM_194",
+                         "SODIMM_55",
+                         "SODIMM_63",
+                         "SODIMM_28",
+                         "SODIMM_93",
+                         "SODIMM_69",
+                         "SODIMM_99",
+                         "SODIMM_130",
+                         "SODIMM_106",
+                         "SODIMM_98",
+                         "SODIMM_192",
+                         "SODIMM_49",
+                         "SODIMM_190",
+                         "SODIMM_51",
+                         "SODIMM_47",
+                         "SODIMM_53",
+                         "",
+                         "SODIMM_22";
+};
+
+&gpio2 {
+       gpio-line-names = "SODIMM_132",
+                         "SODIMM_134",
+                         "SODIMM_135",
+                         "SODIMM_133",
+                         "SODIMM_102",
+                         "SODIMM_43",
+                         "SODIMM_127",
+                         "SODIMM_37",
+                         "SODIMM_104",
+                         "SODIMM_59",
+                         "SODIMM_30",
+                         "SODIMM_100",
+                         "SODIMM_38",
+                         "SODIMM_34",
+                         "SODIMM_32",
+                         "SODIMM_36",
+                         "SODIMM_59",
+                         "SODIMM_67",
+                         "SODIMM_97",
+                         "SODIMM_79",
+                         "SODIMM_103",
+                         "SODIMM_101",
+                         "SODIMM_45",
+                         "SODIMM_105",
+                         "SODIMM_107",
+                         "SODIMM_91",
+                         "SODIMM_89",
+                         "SODIMM_150",
+                         "SODIMM_126",
+                         "SODIMM_128",
+                         "",
+                         "SODIMM_94";
+};
+
+&gpio3 {
+       gpio-line-names = "SODIMM_111",
+                         "SODIMM_113",
+                         "SODIMM_115",
+                         "SODIMM_117",
+                         "SODIMM_119",
+                         "SODIMM_121",
+                         "SODIMM_123",
+                         "SODIMM_125",
+                         "SODIMM_110",
+                         "SODIMM_112",
+                         "SODIMM_114",
+                         "SODIMM_116",
+                         "SODIMM_118",
+                         "SODIMM_120",
+                         "SODIMM_122",
+                         "SODIMM_124",
+                         "",
+                         "SODIMM_96",
+                         "SODIMM_77",
+                         "SODIMM_25",
+                         "SODIMM_27",
+                         "SODIMM_88",
+                         "SODIMM_90",
+                         "SODIMM_31",
+                         "SODIMM_23",
+                         "SODIMM_29",
+                         "SODIMM_71",
+                         "SODIMM_73",
+                         "SODIMM_92",
+                         "SODIMM_81",
+                         "SODIMM_131",
+                         "SODIMM_129";
+};
+
+&gpio4 {
+       gpio-line-names = "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_168",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_184",
+                         "SODIMM_186",
+                         "HDMI_15",
+                         "HDMI_16",
+                         "SODIMM_178",
+                         "SODIMM_188",
+                         "SODIMM_56",
+                         "SODIMM_44",
+                         "SODIMM_68",
+                         "SODIMM_82",
+                         "SODIMM_24",
+                         "SODIMM_76",
+                         "SODIMM_70",
+                         "SODIMM_60",
+                         "SODIMM_58",
+                         "SODIMM_78",
+                         "SODIMM_72",
+                         "SODIMM_80",
+                         "SODIMM_46",
+                         "SODIMM_62",
+                         "SODIMM_48",
+                         "SODIMM_74";
+};
+
+&gpio5 {
+       gpio-line-names = "SODIMM_95",
+                         "",
+                         "SODIMM_86",
+                         "",
+                         "SODIMM_65",
+                         "SODIMM_50",
+                         "SODIMM_52",
+                         "SODIMM_54",
+                         "SODIMM_66",
+                         "SODIMM_64",
+                         "SODIMM_57",
+                         "SODIMM_61",
+                         "SODIMM_136",
+                         "SODIMM_138",
+                         "SODIMM_140",
+                         "SODIMM_142",
+                         "SODIMM_144",
+                         "SODIMM_146",
+                         "SODIMM_172",
+                         "SODIMM_170",
+                         "SODIMM_149",
+                         "SODIMM_151",
+                         "SODIMM_153",
+                         "SODIMM_155",
+                         "SODIMM_157",
+                         "SODIMM_159",
+                         "SODIMM_161",
+                         "SODIMM_163",
+                         "SODIMM_33",
+                         "SODIMM_35",
+                         "SODIMM_165",
+                         "SODIMM_167";
+};
+
+&gpio6 {
+       gpio-line-names = "SODIMM_169",
+                         "SODIMM_171",
+                         "SODIMM_173",
+                         "SODIMM_175",
+                         "SODIMM_177",
+                         "SODIMM_179",
+                         "SODIMM_85",
+                         "SODIMM_166",
+                         "SODIMM_160",
+                         "SODIMM_162",
+                         "SODIMM_158",
+                         "SODIMM_164",
+                         "",
+                         "",
+                         "SODIMM_156",
+                         "SODIMM_75",
+                         "SODIMM_154",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_152";
+};
+
+&gpio7 {
+       gpio-line-names = "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_19",
+                         "SODIMM_21",
+                         "",
+                         "SODIMM_137";
+};
+
 &hdmi {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hdmi_ddc>;
        clock-frequency = <100000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
-       pinctrl-0 = <&pinctrl_i2c2_gpio>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
        scl-gpios = <&gpio2 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpio3 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
 
-       pmic: pfuze100@8 {
+       pmic: pmic@8 {
                compatible = "fsl,pfuze100";
+               fsl,pmic-stby-poweroff;
                reg = <0x08>;
 
                regulators {
                        sw1a_reg: sw1ab {
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1875000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-min-microvolt = <300000>;
                                regulator-ramp-delay = <6250>;
                        };
 
                        sw1c_reg: sw1c {
-                               regulator-min-microvolt = <300000>;
-                               regulator-max-microvolt = <1875000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1875000>;
+                               regulator-min-microvolt = <300000>;
                                regulator-ramp-delay = <6250>;
                        };
 
                        sw3a_reg: sw3a {
-                               regulator-min-microvolt = <400000>;
-                               regulator-max-microvolt = <1975000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1975000>;
+                               regulator-min-microvolt = <400000>;
                        };
 
                        swbst_reg: swbst {
-                               regulator-min-microvolt = <5000000>;
-                               regulator-max-microvolt = <5150000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <5150000>;
+                               regulator-min-microvolt = <5000000>;
                        };
 
                        snvs_reg: vsnvs {
-                               regulator-min-microvolt = <1000000>;
-                               regulator-max-microvolt = <3000000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-min-microvolt = <1000000>;
                        };
 
                        vref_reg: vrefddr {
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
                        };
 
                        /* vgen1: unused */
 
                        vgen2_reg: vgen2 {
-                               regulator-min-microvolt = <800000>;
-                               regulator-max-microvolt = <1550000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1550000>;
+                               regulator-min-microvolt = <800000>;
                        };
 
                        /*
                         * the i.MX 6 NVCC_SD1.
                         */
                        vgen3_reg: vgen3 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
                        };
 
                        vgen4_reg: vgen4 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
                        };
 
                        vgen5_reg: vgen5 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
                        };
 
                        vgen6_reg: vgen6 {
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <3300000>;
-                               regulator-boot-on;
                                regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
                        };
                };
        };
 
        codec: sgtl5000@a {
                compatible = "fsl,sgtl5000";
-               reg = <0x0a>;
                clocks = <&clks IMX6QDL_CLK_CKO>;
+               lrclk-strength = <3>;
+               reg = <0x0a>;
+               #sound-dai-cells = <0>;
                VDDA-supply = <&reg_module_3v3_audio>;
                VDDIO-supply = <&reg_module_3v3>;
                VDDD-supply = <&vgen4_reg>;
-               lrclk-strength = <3>;
        };
 
        /* STMPE811 touch screen controller */
        stmpe811@41 {
                compatible = "st,stmpe811";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_touch_int>;
-               reg = <0x41>;
+               blocks = <0x5>;
                interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
                interrupt-parent = <&gpio6>;
                interrupt-controller;
                id = <0>;
-               blocks = <0x5>;
                irq-trigger = <0x1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_touch_int>;
+               reg = <0x41>;
                /* 3.25 MHz ADC clock speed */
                st,adc-freq = <1>;
                /* 12-bit ADC */
                /* ADC converstion time: 80 clocks */
                st,sample-time = <4>;
 
-               stmpe_touchscreen {
+               stmpe_ts: stmpe_touchscreen {
                        compatible = "st,stmpe-ts";
                        /* 8 sample average control */
                        st,ave-ctrl = <3>;
                        st,settling = <3>;
                        /* 5 ms touch detect interrupt delay */
                        st,touch-det-delay = <5>;
+                       status = "disabled";
                };
 
-               stmpe_adc {
+               stmpe_adc: stmpe_adc {
                        compatible = "st,stmpe-adc";
                        /* forbid to use ADC channels 3-0 (touch) */
                        st,norequest-mask = <0x0F>;
        scl-gpios = <&gpio1 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpio1 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "disabled";
+
+       atmel_mxt_ts: touchscreen@4a {
+               compatible = "atmel,maxtouch";
+               interrupt-parent = <&gpio2>;
+               interrupts = <24 IRQ_TYPE_EDGE_FALLING>;        /* SODIMM 107 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_atmel_conn>;
+               reg = <0x4a>;
+               reset-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;     /* SODIMM 106 */
+               status = "disabled";
+       };
+};
+
+&ipu1_di0_disp0 {
+       remote-endpoint = <&lcd_display_in>;
 };
 
 /* Colibri PWM<B> */
 
 /* Colibri UART_A */
 &uart1 {
+       fsl,dte-mode;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1_dte &pinctrl_uart1_ctrl>;
-       fsl,dte-mode;
        uart-has-rtscts;
        status = "disabled";
 };
 
 /* Colibri UART_B */
 &uart2 {
+       fsl,dte-mode;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2_dte>;
-       fsl,dte-mode;
        uart-has-rtscts;
        status = "disabled";
 };
 
 /* Colibri UART_C */
 &uart3 {
+       fsl,dte-mode;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3_dte>;
-       fsl,dte-mode;
        status = "disabled";
 };
 
 
 /* Colibri MMC */
 &usdhc1 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>;
        cd-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>; /* MMCD */
-       disable-wp;
-       vqmmc-supply = <&reg_module_3v3>;
        bus-width = <4>;
        no-1-8-v;
+       disable-wp;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_mmc_cd>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_mmc_cd>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_mmc_cd>;
+       pinctrl-3 = <&pinctrl_usdhc1_sleep &pinctrl_mmc_cd_sleep>;
+       vmmc-supply = <&reg_module_3v3>;
+       vqmmc-supply = <&vgen3_reg>;
        status = "disabled";
 };
 
 /* eMMC */
 &usdhc3 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc3>;
-       vqmmc-supply = <&reg_module_3v3>;
        bus-width = <8>;
        no-1-8-v;
        non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       vqmmc-supply = <&reg_module_3v3>;
        status = "okay";
 };
 
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbh_oc_1>;
 
+       /* Atmel MXT touchsceen + Capacitive Touch Adapter */
+       /* NOTE: This pin group conflicts with pin groups
+        * pinctrl_pwm1/pinctrl_pwm4. Don't use them simultaneously.
+        */
+       pinctrl_atmel_adap: atmeladaptergrp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_9__GPIO1_IO09   0xb0b1  /* SODIMM  28 */
+                       MX6QDL_PAD_SD4_DAT2__GPIO2_IO10 0xb0b1  /* SODIMM  30 */
+               >;
+       };
+
+       /* Atmel MXT touchsceen + boards with built-in Capacitive Touch Connector */
+       /* NOTE: This pin group conflicts with pin groups pinctrl_weim_cs1 and
+        * pinctrl_weim_cs2. Don't use them simultaneously.
+        */
+       pinctrl_atmel_conn: atmelconnectorgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_CS1__GPIO2_IO24  0xb0b1  /* SODIMM_107 */
+                       MX6QDL_PAD_SD2_DAT1__GPIO1_IO14 0xb0b1  /* SODIMM_106 */
+               >;
+       };
+
        pinctrl_audmux: audmuxgrp {
                fsl,pins = <
+                       /* SGTL5000 sys_mclk */
+                       MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x000b0
                        MX6QDL_PAD_KEY_COL0__AUD5_TXC   0x130b0
                        MX6QDL_PAD_KEY_ROW0__AUD5_TXD   0x130b0
                        MX6QDL_PAD_KEY_COL1__AUD5_TXFS  0x130b0
                        MX6QDL_PAD_KEY_ROW1__AUD5_RXD   0x130b0
-                       /* SGTL5000 sys_mclk */
-                       MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x000b0
                >;
        };
 
                >;
        };
 
+       /* CSI pins used as GPIOs */
+       pinctrl_csi_gpio_1: csigpio1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_D18__GPIO3_IO18   0x1b0b0
+                       MX6QDL_PAD_EIM_A19__GPIO2_IO19   0x1b0b0
+                       MX6QDL_PAD_EIM_D29__GPIO3_IO29   0x130b0
+                       MX6QDL_PAD_EIM_A23__GPIO6_IO06   0x1b0b0
+                       MX6QDL_PAD_EIM_A20__GPIO2_IO18   0x1b0b0
+                       MX6QDL_PAD_EIM_A17__GPIO2_IO21   0x1b0b0
+                       MX6QDL_PAD_EIM_A18__GPIO2_IO20   0x1b0b0
+                       MX6QDL_PAD_EIM_EB3__GPIO2_IO31   0x1b0b0
+                       MX6QDL_PAD_EIM_D17__GPIO3_IO17   0x1b0b0
+                       MX6QDL_PAD_NANDF_CS2__GPIO6_IO15 0x1b0b0
+                       MX6QDL_PAD_SD2_CMD__GPIO1_IO11   0x1b0b0
+                       MX6QDL_PAD_SD2_DAT0__GPIO1_IO15  0x1b0b0
+               >;
+       };
+
+       pinctrl_csi_gpio_2: csigpio2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_A24__GPIO5_IO04   0x1b0b0
+               >;
+       };
+
        pinctrl_ecspi4: ecspi4grp {
                fsl,pins = <
+                       /* SPI CS */
+                       MX6QDL_PAD_EIM_A25__GPIO5_IO02  0x000b1
                        MX6QDL_PAD_EIM_D22__ECSPI4_MISO 0x100b1
                        MX6QDL_PAD_EIM_D28__ECSPI4_MOSI 0x100b1
                        MX6QDL_PAD_EIM_D21__ECSPI4_SCLK 0x100b1
-                       /* SPI CS */
-                       MX6QDL_PAD_EIM_A25__GPIO5_IO02  0x000b1
                >;
        };
 
        pinctrl_enet: enetgrp {
                fsl,pins = <
+                       MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN      0x1b0b0
                        MX6QDL_PAD_ENET_MDC__ENET_MDC           0x1b0b0
                        MX6QDL_PAD_ENET_MDIO__ENET_MDIO         0x1b0b0
+                       MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER       0x1b0b0
                        MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0     0x1b0b0
                        MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1     0x1b0b0
-                       MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER       0x1b0b0
                        MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN       0x1b0b0
                        MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0     0x1b0b0
                        MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1     0x1b0b0
-                       MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN      0x1b0b0
-                       MX6QDL_PAD_GPIO_16__ENET_REF_CLK     ((1<<30) | 0x1b0b0)
+                       MX6QDL_PAD_GPIO_16__ENET_REF_CLK        ((1<<30) | 0x1b0b0)
                >;
        };
 
                >;
        };
 
-       pinctrl_gpio_bl_on: gpioblon {
+       pinctrl_gpio_1: gpio1grp {
+               fsl,pins = <
+                       MX6QDL_PAD_DI0_PIN4__GPIO4_IO20     0x1b0b0
+                       MX6QDL_PAD_EIM_D27__GPIO3_IO27      0x1b0b0
+                       MX6QDL_PAD_ENET_REF_CLK__GPIO1_IO23 0x1b0b0
+                       MX6QDL_PAD_NANDF_D3__GPIO2_IO03     0x1b0b0
+                       MX6QDL_PAD_NANDF_D4__GPIO2_IO04     0x1b0b0
+                       MX6QDL_PAD_NANDF_D6__GPIO2_IO06     0x1b0b0
+                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08     0x1b0b0
+                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11     0x1b0b0
+               >;
+       };
+       pinctrl_gpio_2: gpio2grp {
+               fsl,pins = <
+                       MX6QDL_PAD_GPIO_7__GPIO1_IO07       0x1b0b0
+                       MX6QDL_PAD_GPIO_8__GPIO1_IO08       0x1b0b0
+               >;
+       };
+
+       pinctrl_gpio_bl_on: gpioblongrp {
                fsl,pins = <
                        MX6QDL_PAD_EIM_D26__GPIO3_IO26          0x1b0b0
                >;
        };
 
-       pinctrl_gpio_keys: gpiokeys {
+       pinctrl_gpio_keys: gpiokeysgrp {
                fsl,pins = <
                        MX6QDL_PAD_EIM_A16__GPIO2_IO22          0x130b0
                >;
 
        pinctrl_i2c2: i2c2grp {
                fsl,pins = <
-                       MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
                        MX6QDL_PAD_EIM_D16__I2C2_SDA 0x4001b8b1
+                       MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
                >;
        };
 
-       pinctrl_i2c2_gpio: i2c2grp {
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
                fsl,pins = <
-                       MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x4001b8b1
                        MX6QDL_PAD_EIM_D16__GPIO3_IO16 0x4001b8b1
+                       MX6QDL_PAD_EIM_EB2__GPIO2_IO30 0x4001b8b1
                >;
        };
 
                        MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC     0xb0b1
                        MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC     0xb0b1
                        /* Disable PWM pins on camera interface */
-                       MX6QDL_PAD_SD4_DAT1__GPIO2_IO09         0x40
                        MX6QDL_PAD_GPIO_1__GPIO1_IO01           0x40
+                       MX6QDL_PAD_SD4_DAT1__GPIO2_IO09         0x40
                >;
        };
 
                >;
        };
 
-       pinctrl_mic_gnd: gpiomicgnd {
+       pinctrl_lvds_transceiver: lvdstxgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_EIM_WAIT__GPIO5_IO00 0x03030 /* SODIMM  95 */
+                       MX6QDL_PAD_GPIO_7__GPIO1_IO07   0x0b030 /* SODIMM  55 */
+                       MX6QDL_PAD_GPIO_8__GPIO1_IO08   0x03030 /* SODIMM  63 */
+                       MX6QDL_PAD_SD2_DAT3__GPIO1_IO12 0x03030 /* SODIMM  99 */
+               >;
+       };
+
+       pinctrl_mic_gnd: micgndgrp {
                fsl,pins = <
                        /* Controls Mic GND, PU or '1' pull Mic GND to GND */
                        MX6QDL_PAD_RGMII_TD1__GPIO6_IO21 0x1b0b0
                >;
        };
 
-       pinctrl_mmc_cd: gpiommccd {
+       pinctrl_mmc_cd: mmccdgrp {
                fsl,pins = <
                        MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x1b0b1
                >;
        };
 
+       pinctrl_mmc_cd_sleep: mmccdslpgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_NANDF_D5__GPIO2_IO05 0x0
+               >;
+       };
+
        pinctrl_pwm1: pwm1grp {
                fsl,pins = <
                        MX6QDL_PAD_GPIO_9__PWM1_OUT     0x1b0b1
 
        pinctrl_pwm2: pwm2grp {
                fsl,pins = <
-                       MX6QDL_PAD_GPIO_1__PWM2_OUT     0x1b0b1
                        MX6QDL_PAD_EIM_A21__GPIO2_IO17  0x00040
+                       MX6QDL_PAD_GPIO_1__PWM2_OUT     0x1b0b1
                >;
        };
 
        pinctrl_pwm3: pwm3grp {
                fsl,pins = <
-                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT   0x1b0b1
                        MX6QDL_PAD_EIM_A22__GPIO2_IO16  0x00040
+                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT   0x1b0b1
                >;
        };
 
                >;
        };
 
-       pinctrl_usbh_oc_1: usbhoc1grp {
-               fsl,pins = <
-                       /* USBH_OC */
-                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x1b0b0
-               >;
-       };
-
        pinctrl_spdif: spdifgrp {
                fsl,pins = <
                        MX6QDL_PAD_GPIO_17__SPDIF_OUT 0x1b0b0
        pinctrl_uart2_dte: uart2dtegrp {
                fsl,pins = <
                        MX6QDL_PAD_SD4_DAT4__UART2_TX_DATA      0x1b0b1
-                       MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA      0x1b0b1
-                       MX6QDL_PAD_SD4_DAT6__UART2_RTS_B        0x1b0b1
                        MX6QDL_PAD_SD4_DAT5__UART2_CTS_B        0x1b0b1
+                       MX6QDL_PAD_SD4_DAT6__UART2_RTS_B        0x1b0b1
+                       MX6QDL_PAD_SD4_DAT7__UART2_RX_DATA      0x1b0b1
                >;
        };
 
                fsl,pins = <
                        /* USBC_DET */
                        MX6QDL_PAD_GPIO_17__GPIO7_IO12          0x1b0b0
-                       /* USBC_DET_EN */
-                       MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26     0x0f058
                        /* USBC_DET_OVERWRITE */
                        MX6QDL_PAD_RGMII_RXC__GPIO6_IO30        0x0f058
+                       /* USBC_DET_EN */
+                       MX6QDL_PAD_RGMII_TX_CTL__GPIO6_IO26     0x0f058
                >;
        };
 
-       pinctrl_usbc_id_1: usbc_id-1 {
+       pinctrl_usbc_id_1: usbcid1grp {
                fsl,pins = <
                        /* USBC_ID */
                        MX6QDL_PAD_NANDF_D2__GPIO2_IO02         0x1b0b0
                >;
        };
 
+       pinctrl_usbh_oc_1: usbhoc1grp {
+               fsl,pins = <
+                       /* USBH_OC */
+                       MX6QDL_PAD_EIM_D30__GPIO3_IO30          0x1b0b0
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        MX6QDL_PAD_SD1_CMD__SD1_CMD     0x17071
                >;
        };
 
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_CMD__SD1_CMD    0x170b1
+                       MX6QDL_PAD_SD1_CLK__SD1_CLK    0x100b1
+                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170b1
+                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170b1
+                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170b1
+                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170b1
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_CMD__SD1_CMD    0x170f1
+                       MX6QDL_PAD_SD1_CLK__SD1_CLK    0x100f1
+                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f1
+                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f1
+                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f1
+                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f1
+               >;
+       };
+
+       /* avoid backfeeding with removed card power */
+       pinctrl_usdhc1_sleep: usdhc1sleepgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_SD1_CMD__SD1_CMD     0x3000
+                       MX6QDL_PAD_SD1_CLK__SD1_CLK     0x3000
+                       MX6QDL_PAD_SD1_DAT0__SD1_DATA0  0x3000
+                       MX6QDL_PAD_SD1_DAT1__SD1_DATA1  0x3000
+                       MX6QDL_PAD_SD1_DAT2__SD1_DATA2  0x3000
+                       MX6QDL_PAD_SD1_DAT3__SD1_DATA3  0x3000
+               >;
+       };
+
        pinctrl_usdhc3: usdhc3grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD     0x17059
                >;
        };
 
-       pinctrl_weim_sram: weimsramgrp {
-               fsl,pins = <
-                       MX6QDL_PAD_EIM_OE__EIM_OE_B             0xb0b1
-                       MX6QDL_PAD_EIM_RW__EIM_RW               0xb0b1
-                       /* Data */
-                       MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00     0x1b0b0
-                       MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT4__EIM_DATA02        0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT5__EIM_DATA03        0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT6__EIM_DATA04        0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT7__EIM_DATA05        0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT8__EIM_DATA06        0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT9__EIM_DATA07        0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT12__EIM_DATA08       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT13__EIM_DATA09       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT14__EIM_DATA10       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT15__EIM_DATA11       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT16__EIM_DATA12       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT17__EIM_DATA13       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT18__EIM_DATA14       0x1b0b0
-                       MX6QDL_PAD_CSI0_DAT19__EIM_DATA15       0x1b0b0
-                       /* Address */
-                       MX6QDL_PAD_EIM_DA15__EIM_AD15           0xb0b1
-                       MX6QDL_PAD_EIM_DA14__EIM_AD14           0xb0b1
-                       MX6QDL_PAD_EIM_DA13__EIM_AD13           0xb0b1
-                       MX6QDL_PAD_EIM_DA12__EIM_AD12           0xb0b1
-                       MX6QDL_PAD_EIM_DA11__EIM_AD11           0xb0b1
-                       MX6QDL_PAD_EIM_DA10__EIM_AD10           0xb0b1
-                       MX6QDL_PAD_EIM_DA9__EIM_AD09            0xb0b1
-                       MX6QDL_PAD_EIM_DA8__EIM_AD08            0xb0b1
-                       MX6QDL_PAD_EIM_DA7__EIM_AD07            0xb0b1
-                       MX6QDL_PAD_EIM_DA6__EIM_AD06            0xb0b1
-                       MX6QDL_PAD_EIM_DA5__EIM_AD05            0xb0b1
-                       MX6QDL_PAD_EIM_DA4__EIM_AD04            0xb0b1
-                       MX6QDL_PAD_EIM_DA3__EIM_AD03            0xb0b1
-                       MX6QDL_PAD_EIM_DA2__EIM_AD02            0xb0b1
-                       MX6QDL_PAD_EIM_DA1__EIM_AD01            0xb0b1
-                       MX6QDL_PAD_EIM_DA0__EIM_AD00            0xb0b1
-               >;
-       };
-
-       pinctrl_weim_rdnwr: weimrdnwr {
-               fsl,pins = <
-                       MX6QDL_PAD_SD2_CLK__GPIO1_IO10          0x0040
-                       MX6QDL_PAD_RGMII_TD3__GPIO6_IO23        0x130b0
-               >;
-       };
-
-       pinctrl_weim_npwe: weimnpwe {
-               fsl,pins = <
-                       MX6QDL_PAD_SD2_DAT3__GPIO1_IO12         0x0040
-                       MX6QDL_PAD_RGMII_TD2__GPIO6_IO22        0x130b0
-               >;
-       };
-
        /* ADDRESS[16:18] [25] used as GPIO */
-       pinctrl_weim_gpio_1: weimgpio-1 {
+       pinctrl_weim_gpio_1: weimgpio1grp {
                fsl,pins = <
-                       MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x1b0b0
-                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11         0x1b0b0
-                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
                        MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17      0x1b0b0
                        MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16      0x1b0b0
                        MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15      0x1b0b0
                        MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14      0x1b0b0
                        MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13      0x1b0b0
                        MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12      0x1b0b0
+                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11         0x1b0b0
                        MX6QDL_PAD_NANDF_D1__GPIO2_IO01         0x1b0b0
                >;
        };
 
        /* ADDRESS[19:24] used as GPIO */
-       pinctrl_weim_gpio_2: weimgpio-2 {
+       pinctrl_weim_gpio_2: weimgpio2grp {
                fsl,pins = <
-                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11         0x1b0b0
-                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
-                       MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17      0x1b0b0
-                       MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16      0x1b0b0
-                       MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15      0x1b0b0
-                       MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14      0x1b0b0
-                       MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13      0x1b0b0
                        MX6QDL_PAD_DISP0_DAT18__GPIO5_IO12      0x1b0b0
+                       MX6QDL_PAD_DISP0_DAT19__GPIO5_IO13      0x1b0b0
+                       MX6QDL_PAD_DISP0_DAT20__GPIO5_IO14      0x1b0b0
+                       MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15      0x1b0b0
+                       MX6QDL_PAD_DISP0_DAT22__GPIO5_IO16      0x1b0b0
+                       MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17      0x1b0b0
+                       MX6QDL_PAD_KEY_COL2__GPIO4_IO10         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW2__GPIO4_IO11         0x1b0b0
                        MX6QDL_PAD_NANDF_D1__GPIO2_IO01         0x1b0b0
                >;
        };
 
        /* DATA[16:31] used as GPIO */
-       pinctrl_weim_gpio_3: weimgpio-3 {
+       pinctrl_weim_gpio_3: weimgpio3grp {
                fsl,pins = <
+                       MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19        0x1b0b0
+                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18      0x1b0b0
                        MX6QDL_PAD_EIM_LBA__GPIO2_IO27          0x1b0b0
                        MX6QDL_PAD_EIM_BCLK__GPIO6_IO31         0x1b0b0
-                       MX6QDL_PAD_NANDF_CS3__GPIO6_IO16        0x1b0b0
-                       MX6QDL_PAD_NANDF_CS1__GPIO6_IO14        0x1b0b0
-                       MX6QDL_PAD_NANDF_RB0__GPIO6_IO10        0x1b0b0
+                       MX6QDL_PAD_GPIO_2__GPIO1_IO02           0x1b0b0
+                       MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1b0b0
+                       MX6QDL_PAD_GPIO_5__GPIO1_IO05           0x1b0b0
+                       MX6QDL_PAD_GPIO_19__GPIO4_IO05          0x1b0b0
                        MX6QDL_PAD_NANDF_ALE__GPIO6_IO08        0x1b0b0
-                       MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09       0x1b0b0
                        MX6QDL_PAD_NANDF_CS0__GPIO6_IO11        0x1b0b0
+                       MX6QDL_PAD_NANDF_CS1__GPIO6_IO14        0x1b0b0
+                       MX6QDL_PAD_NANDF_CS3__GPIO6_IO16        0x1b0b0
                        MX6QDL_PAD_NANDF_CLE__GPIO6_IO07        0x1b0b0
-                       MX6QDL_PAD_GPIO_19__GPIO4_IO05          0x1b0b0
-                       MX6QDL_PAD_CSI0_MCLK__GPIO5_IO19        0x1b0b0
-                       MX6QDL_PAD_CSI0_PIXCLK__GPIO5_IO18      0x1b0b0
-                       MX6QDL_PAD_GPIO_4__GPIO1_IO04           0x1b0b0
-                       MX6QDL_PAD_GPIO_5__GPIO1_IO05           0x1b0b0
-                       MX6QDL_PAD_GPIO_2__GPIO1_IO02           0x1b0b0
+                       MX6QDL_PAD_NANDF_RB0__GPIO6_IO10        0x1b0b0
+                       MX6QDL_PAD_NANDF_WP_B__GPIO6_IO09       0x1b0b0
                >;
        };
 
        /* DQM[0:3] used as GPIO */
-       pinctrl_weim_gpio_4: weimgpio-4 {
+       pinctrl_weim_gpio_4: weimgpio4grp {
                fsl,pins = <
                        MX6QDL_PAD_EIM_EB0__GPIO2_IO28          0x1b0b0
                        MX6QDL_PAD_EIM_EB1__GPIO2_IO29          0x1b0b0
-                       MX6QDL_PAD_SD2_DAT2__GPIO1_IO13         0x1b0b0
                        MX6QDL_PAD_NANDF_D0__GPIO2_IO00         0x1b0b0
+                       MX6QDL_PAD_SD2_DAT2__GPIO1_IO13         0x1b0b0
                >;
        };
 
        /* RDY used as GPIO */
-       pinctrl_weim_gpio_5: weimgpio-5 {
+       pinctrl_weim_gpio_5: weimgpio5grp {
                fsl,pins = <
                        MX6QDL_PAD_EIM_WAIT__GPIO5_IO00         0x1b0b0
                >;
        };
 
        /* ADDRESS[16] DATA[30] used as GPIO */
-       pinctrl_weim_gpio_6: weimgpio-6 {
+       pinctrl_weim_gpio_6: weimgpio6grp {
                fsl,pins = <
-                       MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x1b0b0
                        MX6QDL_PAD_KEY_COL4__GPIO4_IO14         0x1b0b0
+                       MX6QDL_PAD_KEY_ROW4__GPIO4_IO15         0x1b0b0
+               >;
+       };
+
+       pinctrl_weim_npwe: weimnpwegrp {
+               fsl,pins = <
+                       MX6QDL_PAD_RGMII_TD2__GPIO6_IO22        0x130b0
+                       MX6QDL_PAD_SD2_DAT3__GPIO1_IO12         0x0040
+               >;
+       };
+
+       pinctrl_weim_sram: weimsramgrp {
+               fsl,pins = <
+                       /* Data */
+                       MX6QDL_PAD_CSI0_DAT4__EIM_DATA02        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT5__EIM_DATA03        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT6__EIM_DATA04        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT7__EIM_DATA05        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT8__EIM_DATA06        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT9__EIM_DATA07        0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT12__EIM_DATA08       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT13__EIM_DATA09       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT14__EIM_DATA10       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT15__EIM_DATA11       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT16__EIM_DATA12       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT17__EIM_DATA13       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT18__EIM_DATA14       0x1b0b0
+                       MX6QDL_PAD_CSI0_DAT19__EIM_DATA15       0x1b0b0
+                       MX6QDL_PAD_CSI0_DATA_EN__EIM_DATA00     0x1b0b0
+                       MX6QDL_PAD_CSI0_VSYNC__EIM_DATA01       0x1b0b0
+                       /* Address */
+                       MX6QDL_PAD_EIM_DA0__EIM_AD00            0xb0b1
+                       MX6QDL_PAD_EIM_DA1__EIM_AD01            0xb0b1
+                       MX6QDL_PAD_EIM_DA2__EIM_AD02            0xb0b1
+                       MX6QDL_PAD_EIM_DA3__EIM_AD03            0xb0b1
+                       MX6QDL_PAD_EIM_DA4__EIM_AD04            0xb0b1
+                       MX6QDL_PAD_EIM_DA5__EIM_AD05            0xb0b1
+                       MX6QDL_PAD_EIM_DA6__EIM_AD06            0xb0b1
+                       MX6QDL_PAD_EIM_DA7__EIM_AD07            0xb0b1
+                       MX6QDL_PAD_EIM_DA8__EIM_AD08            0xb0b1
+                       MX6QDL_PAD_EIM_DA9__EIM_AD09            0xb0b1
+                       MX6QDL_PAD_EIM_DA10__EIM_AD10           0xb0b1
+                       MX6QDL_PAD_EIM_DA11__EIM_AD11           0xb0b1
+                       MX6QDL_PAD_EIM_DA12__EIM_AD12           0xb0b1
+                       MX6QDL_PAD_EIM_DA13__EIM_AD13           0xb0b1
+                       MX6QDL_PAD_EIM_DA14__EIM_AD14           0xb0b1
+                       MX6QDL_PAD_EIM_DA15__EIM_AD15           0xb0b1
+                       /* Ctrl */
+                       MX6QDL_PAD_EIM_OE__EIM_OE_B             0xb0b1
+                       MX6QDL_PAD_EIM_RW__EIM_RW               0xb0b1
+               >;
+       };
+
+       pinctrl_weim_rdnwr: weimrdnwrgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_RGMII_TD3__GPIO6_IO23        0x130b0
+                       MX6QDL_PAD_SD2_CLK__GPIO1_IO10          0x0040
                >;
        };
 };
index 648f5fc..2c1d6f2 100644 (file)
@@ -35,7 +35,7 @@
        pinctrl-0 = <&pinctrl_ecspi3>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "sst,sst25vf040b", "jedec,spi-nor";
index b167b33..095c914 100644 (file)
        status = "okay";
 
        /* default boot source: workaround #1 for errata ERR006282 */
-       smarc_flash: spi-flash@0 {
+       smarc_flash: flash@0 {
                compatible = "winbond,w25q16dw", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <20000000>;
index ac34709..0ad4cb4 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "microchip,sst25vf016b";
                spi-max-frequency = <20000000>;
                reg = <0>;
index c96f4d7..beaa2dc 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "microchip,sst25vf016b";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 92d09a3..ee7e237 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "microchip,sst25vf016b";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 49da30d..904d5d0 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "sst,sst25vf016b", "jedec,spi-nor";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 1f2ba6f..768bc0e 100644 (file)
                pinctrl-0 = <&pinctrl_leds>;
                compatible = "gpio-leds";
 
-               green {
+               led_green: green {
                        label = "phyflex:green";
                        gpios = <&gpio1 30 0>;
                };
 
-               red {
+               led_red: red {
                        label = "phyflex:red";
                        gpios = <&gpio2 31 0>;
                };
index 5e58740..1368a47 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
        status = "disabled"; /* pin conflict with WEIM NOR */
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p32", "jedec,spi-nor";
index eb9a0b1..901b9a7 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "sst,sst25vf016b", "jedec,spi-nor";
                spi-max-frequency = <20000000>;
                reg = <0>;
index 0c01054..37482a9 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p32", "jedec,spi-nor";
index bcc5bbc..f41f86a 100644 (file)
 &fec {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet &pinctrl_enet_mdio &pinctrl_etnphy_rst>;
-       clocks = <&clks IMX6QDL_CLK_ENET>,
-                <&clks IMX6QDL_CLK_ENET>,
-                <&clks IMX6QDL_CLK_ENET_REF>,
-                <&clks IMX6QDL_CLK_ENET_REF>;
-       clock-names = "ipg", "ahb", "ptp", "enet_out";
        phy-mode = "rmii";
        phy-reset-gpios = <&gpio7 6 GPIO_ACTIVE_LOW>;
        phy-reset-post-delay = <10>;
index ccfa8e3..93a8123 100644 (file)
        pinctrl-0 = <&pinctrl_usbh>;
        vbus-supply = <&reg_usb_h1_vbus>;
        clocks = <&clks IMX6QDL_CLK_CKO>;
-       status = "okay";
+       status = "disabled";
 };
 
 &usbotg {
diff --git a/arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi b/arch/arm/boot/dts/imx6qdl-vicut1-12inch.dtsi
new file mode 100644 (file)
index 0000000..f505f27
--- /dev/null
@@ -0,0 +1,128 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright (c) 2021 Protonic Holland
+ */
+
+/ {
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpiokeys>;
+               autorepeat;
+
+               power {
+                       label = "Power Button";
+                       gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       wakeup-source;
+               };
+       };
+
+       panel {
+               compatible = "kyo,tcg121xglp";
+               backlight = <&backlight_lcd>;
+               power-supply = <&reg_3v3>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&lvds0_out>;
+                       };
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&rgmii_phy>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Microchip KSZ9031RNX PHY */
+               rgmii_phy: ethernet-phy@0 {
+                       reg = <0>;
+                       interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <300>;
+               };
+       };
+};
+
+&gpio1 {
+       gpio-line-names =
+               "CAN1_TERM", "SD1_CD", "ITU656_RESET", "CAM1_MIRROR",
+                       "CAM2_MIRROR", "", "", "SMBALERT",
+               "DEBUG_0", "DEBUG_1", "", "", "", "", "", "",
+               "SD1_DATA0", "SD1_DATA1", "SD1_CMD", "SD1_DATA2", "SD1_CLK",
+                       "SD1_DATA3", "ETH_MDIO", "",
+               "", "ETH_RESET", "", "", "ETH_INT", "", "", "ETH_MDC";
+};
+
+&gpio4 {
+       gpio-line-names =
+               "", "", "", "", "", "", "UART4_TXD", "UART4_RXD",
+               "UART5_TXD", "UART5_RXD", "CAN1_TX", "CAN1_RX", "CAN1_SR",
+                       "CAN2_SR", "CAN2_TX", "CAN2_RX",
+               "", "", "DIP1_FB", "", "VCAM_EN", "ON1_CTRL", "ON2_CTRL",
+                       "HITCH_IN_OUT",
+               "LIGHT_ON", "", "", "CONTACT_IN", "BL_EN", "BL_PWM", "",
+                       "ISB_LED";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "ITU656_CLK", "I2S_MCLK", "ITU656_PDN", "AUDIO_RESET",
+                       "I2S_BITCLK", "I2S_DOUT",
+               "I2S_LRCLK", "I2S_DIN", "I2C1_SDA", "I2C1_SCL", "YACO_AUX_RX",
+                       "YACO_AUX_TX", "ITU656_D0", "ITU656_D1";
+};
+
+&gpio6 {
+       gpio-line-names =
+               "ITU656_D2", "ITU656_D3", "ITU656_D4", "ITU656_D5",
+                       "ITU656_D6", "ITU656_D7", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "RGMII_TXC", "RGMII_TD0", "RGMII_TD1", "RGMII_TD2",
+                       "RGMII_TD3",
+               "RGMII_RX_CTL", "RGMII_RD0", "RGMII_TX_CTL", "RGMII_RD1",
+                       "RGMII_RD2", "RGMII_RD3", "", "";
+};
+
+&iomuxc {
+       pinctrl_enet: enetgrp {
+               fsl,pins = <
+                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC                 0x1b030
+                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0                 0x1b030
+                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1                 0x1b030
+                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2                 0x1b030
+                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3                 0x1b030
+                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL           0x1b030
+                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC                 0x10030
+                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0                 0x10030
+                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1                 0x10030
+                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2                 0x10030
+                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3                 0x10030
+                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL           0x10030
+                       MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK            0x10030
+                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO                 0x10030
+                       MX6QDL_PAD_ENET_MDC__ENET_MDC                   0x10030
+                       /* Phy reset */
+                       MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25              0x1b0b0
+                       MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28               0x1b0b1
+               >;
+       };
+
+       pinctrl_gpiokeys: gpiokeygrp {
+               fsl,pins = <
+                       /* nON_SWITCH */
+                       MX6QDL_PAD_EIM_CS0__GPIO2_IO23                  0x1b0b0
+               >;
+       };
+};
index 1ac7e13..a1676b5 100644 (file)
                stdout-path = &uart4;
        };
 
-       backlight: backlight {
+       backlight_lcd: backlight {
                compatible = "pwm-backlight";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_backlight>;
                pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 16 64 255>;
                num-interpolated-steps = <16>;
-               default-brightness-level = <1>;
+               default-brightness-level = <48>;
                power-supply = <&reg_3v3>;
                enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
        };
 
+       backlight_led: backlight_led {
+               compatible = "pwm-backlight";
+               pwms = <&pwm3 0 5000000 0>;
+               brightness-levels = <0 16 64 255>;
+               num-interpolated-steps = <16>;
+               default-brightness-level = <48>;
+               power-supply = <&reg_3v3>;
+       };
+
        connector {
                compatible = "composite-video-connector";
                label = "Composite0";
                gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
        };
 
-       gpio-keys {
-               compatible = "gpio-keys";
-               autorepeat;
-
-               power {
-                       label = "Power Button";
-                       gpios = <&gpio2 23 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_POWER>;
-                       wakeup-source;
-               };
-       };
-
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_leds>;
 
                led-0 {
-                       label = "LED_DI0_DEBUG_0";
+                       label = "debug0";
                        function = LED_FUNCTION_HEARTBEAT;
-                       gpios = <&gpio4 16 GPIO_ACTIVE_HIGH>;
+                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "heartbeat";
                };
 
                led-1 {
-                       label = "LED_DI0_DEBUG_1";
+                       label = "debug1";
                        function = LED_FUNCTION_DISK;
-                       gpios = <&gpio4 17 GPIO_ACTIVE_HIGH>;
+                       gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "disk-activity";
                };
 
                led-2 {
-                       label = "POWER_LED";
+                       label = "power_led";
                        function = LED_FUNCTION_POWER;
                        gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
-       };
-
-       panel {
-               compatible = "kyo,tcg121xglp";
-               backlight = <&backlight>;
-               power-supply = <&reg_3v3>;
 
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&lvds0_out>;
-                       };
+               led-3 {
+                       label = "isb_led";
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
                };
        };
 
                enable-active-high;
        };
 
-       reg_wifi: regulator-wifi {
-               compatible = "regulator-fixed";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_wifi_npd>;
-               regulator-name = "wifi";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               startup-delay-us = <70000>;
-       };
-
        sound {
                compatible = "simple-audio-card";
                simple-audio-card,name = "prti6q-sgtl5000";
                        frame-master;
                };
        };
+
+       thermal-zones {
+               chassis-thermal {
+                       polling-delay = <20000>;
+                       polling-delay-passive = <0>;
+                       thermal-sensors = <&tsens0>;
+               };
+       };
 };
 
 &audmux {
        };
 };
 
-&fec {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_enet>;
-       phy-mode = "rgmii-id";
-       phy-handle = <&rgmii_phy>;
-       status = "okay";
-
-       mdio {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               /* Microchip KSZ9031RNX PHY */
-               rgmii_phy: ethernet-phy@0 {
-                       reg = <0>;
-                       interrupts-extended = <&gpio1 28 IRQ_TYPE_LEVEL_LOW>;
-                       reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
-                       reset-assert-us = <10000>;
-                       reset-deassert-us = <300>;
-               };
-       };
-};
-
-&gpio1 {
-       gpio-line-names =
-               "CAN1_TERM", "SD1_CD", "ITU656_RESET", "CAM1_MIRROR",
-                       "CAM2_MIRROR", "", "", "SMBALERT",
-               "DEBUG_0", "DEBUG_1", "SDIO_SCK", "SDIO_CMD", "SDIO_D3",
-                       "SDIO_D2", "SDIO_D1", "SDIO_D0",
-               "SD1_DATA0", "SD1_DATA1", "SD1_CMD", "SD1_DATA2", "SD1_CLK",
-                       "SD1_DATA3", "", "",
-               "", "ETH_RESET", "WIFI_PD", "WIFI_BT_RST", "ETH_INT", "",
-                       "WL_IRQ", "ETH_MDC";
-};
-
 &gpio2 {
        gpio-line-names =
-               "count0", "count1", "count2", "", "", "", "", "",
-               "REV_ID0", "REV_ID1", "REV_ID2", "REV_ID3", "REV_ID4",
-                       "BOARD_ID0", "BOARD_ID1", "BOARD_ID2",
-               "", "", "", "", "", "", "", "ON_SWITCH",
-               "POWER_LED", "", "ECSPI2_SS0", "", "", "", "", "";
+               "YACO_WHEEL", "YACO_RADAR", "YACO_PTO", "", "", "", "", "",
+               "", "LED_PWM", "", "", "",
+                       "", "", "",
+               "", "", "", "", "", "ISB_IN2", "ISB_nIN1", "ON_SWITCH",
+               "POWER_LED", "", "", "", "", "", "", "";
 };
 
 &gpio3 {
                "", "", "", "", "", "", "", "",
                "ECSPI1_SCLK", "ECSPI1_MISO", "ECSPI1_MOSI", "ECSPI1_SS1",
                        "CPU_ON1_FB", "USB_OTG_OC", "USB_OTG_PWR", "YACO_IRQ",
-               "", "", "", "", "", "", "", "";
-};
-
-&gpio4 {
-       gpio-line-names =
-               "", "", "", "", "", "", "UART4_TXD", "UART4_RXD",
-               "UART5_TXD", "UART5_RXD", "CAN1_TX", "CAN1_RX", "CAN1_SR",
-                       "CAN2_SR", "CAN2_TX", "CAN2_RX",
-               "LED_DI0_DEBUG_0", "LED_DI0_DEBUG_1", "", "", "", "", "", "",
-               "", "", "", "", "BL_EN", "BL_PWM", "", "";
-};
-
-&gpio5 {
-       gpio-line-names =
-               "", "", "", "", "", "PCIE_WAKE", "PCIE_CLKREQ", "PCIE_W_DIS",
-               "PCIE_RESET", "", "", "", "", "", "", "",
-               "", "", "ITU656_CLK", "I2S_MCLK", "ITU656_PDN", "AUDIO_RESET",
-                       "I2S_BITCLK", "I2S_DOUT",
-               "I2S_LRCLK", "I2S_DIN", "I2C1_SDA", "I2C1_SCL", "YACO_AUX_RX",
-                       "YACO_AUX_TX", "ITU656_D0", "ITU656_D1";
-};
-
-&gpio6 {
-       gpio-line-names =
-               "ITU656_D2", "ITU656_D3", "ITU656_D4", "ITU656_D5",
-                       "ITU656_D6", "ITU656_D7", "", "",
-               "", "", "", "", "", "", "", "",
-               "", "", "", "RGMII_TXC", "RGMII_TD0", "RGMII_TD1", "RGMII_TD2",
-                       "RGMII_TD3",
-               "RGMII_RX_CTL", "RGMII_RD0", "RGMII_TX_CTL", "RGMII_RD1",
-                       "RGMII_RD2", "RGMII_RD3", "", "";
+               "TSS_TXD", "TSS_RXD", "", "", "", "", "YACO_BOOT0",
+                       "YACO_RESET";
 };
 
 &gpio7 {
                reg = <0x51>;
        };
 
-       temperature-sensor@70 {
+       tsens0: temperature-sensor@70 {
                compatible = "ti,tmp103";
                reg = <0x70>;
+               #thermal-sensor-cells = <0>;
        };
 };
 
        };
 };
 
-&pcie {
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
-&pwm1 {
+&pwm3 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_pwm1>;
+       pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
 };
 
        status = "okay";
 };
 
-&uart2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_uart2>;
-       status = "okay";
-};
-
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
        status = "okay";
 };
 
-&usdhc2 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_usdhc2>;
-       vmmc-supply = <&reg_wifi>;
-       non-removable;
-       cap-power-off-card;
-       keep-power-in-suspend;
-       no-1-8-v;
-       no-mmc;
-       no-sd;
-       status = "okay";
-
-       wifi {
-               compatible = "ti,wl1271";
-               interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>;
-               ref-clock-frequency = "38400000";
-               tcxo-clock-frequency = "19200000";
-       };
-};
-
 &usdhc3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc3>;
                >;
        };
 
-       pinctrl_enet: enetgrp {
-               fsl,pins = <
-                       MX6QDL_PAD_RGMII_RXC__RGMII_RXC                 0x1b030
-                       MX6QDL_PAD_RGMII_RD0__RGMII_RD0                 0x1b030
-                       MX6QDL_PAD_RGMII_RD1__RGMII_RD1                 0x1b030
-                       MX6QDL_PAD_RGMII_RD2__RGMII_RD2                 0x1b030
-                       MX6QDL_PAD_RGMII_RD3__RGMII_RD3                 0x1b030
-                       MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL           0x1b030
-                       MX6QDL_PAD_RGMII_TXC__RGMII_TXC                 0x10030
-                       MX6QDL_PAD_RGMII_TD0__RGMII_TD0                 0x10030
-                       MX6QDL_PAD_RGMII_TD1__RGMII_TD1                 0x10030
-                       MX6QDL_PAD_RGMII_TD2__RGMII_TD2                 0x10030
-                       MX6QDL_PAD_RGMII_TD3__RGMII_TD3                 0x10030
-                       MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL           0x10030
-                       MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK            0x10030
-                       MX6QDL_PAD_ENET_MDIO__ENET_MDIO                 0x10030
-                       MX6QDL_PAD_ENET_MDC__ENET_MDC                   0x10030
-                       /* Phy reset */
-                       MX6QDL_PAD_ENET_CRS_DV__GPIO1_IO25              0x1b0b0
-                       MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28               0x1b0b1
-               >;
-       };
-
        pinctrl_hog: hoggrp {
                fsl,pins = <
                        /* ITU656_nRESET */
                        MX6QDL_PAD_GPIO_4__GPIO1_IO04                   0x130b0
                        /* CAM_nDETECT */
                        MX6QDL_PAD_GPIO_17__GPIO7_IO12                  0x1b0b0
-                       /* nON_SWITCH */
-                       MX6QDL_PAD_EIM_CS0__GPIO2_IO23                  0x1b0b0
                        /* ISB_IN1 */
                        MX6QDL_PAD_EIM_A16__GPIO2_IO22                  0x130b0
                        /* ISB_nIN2 */
                        /* ITU656_nPDN */
                        MX6QDL_PAD_CSI0_DATA_EN__GPIO5_IO20             0x1b0b0
 
-                       /* HW revision detect */
-                       /* REV_ID0 */
-                       MX6QDL_PAD_SD4_DAT0__GPIO2_IO08                 0x1b0b0
-                       /* REV_ID1 */
-                       MX6QDL_PAD_SD4_DAT1__GPIO2_IO09                 0x1b0b0
-                       /* REV_ID2 */
-                       MX6QDL_PAD_SD4_DAT2__GPIO2_IO10                 0x1b0b0
-                       /* REV_ID3 */
-                       MX6QDL_PAD_SD4_DAT3__GPIO2_IO11                 0x1b0b0
-                       /* REV_ID4 */
-                       MX6QDL_PAD_SD4_DAT4__GPIO2_IO12                 0x1b0b0
-
                        /* New in HW revision 1 */
                        /* ON1_FB */
                        MX6QDL_PAD_EIM_D20__GPIO3_IO20                  0x100b0
                        /* DIP1_FB */
                        MX6QDL_PAD_DI0_PIN2__GPIO4_IO18                 0x1b0b0
-
-                       /* New in UT2: FIXME: ISB PWM should start off, PD */
-                       /* ISB_LED_PWM */
-                       MX6QDL_PAD_DISP0_DAT9__GPIO4_IO30               0x130b0
                >;
        };
 
                        MX6QDL_PAD_DI0_PIN15__GPIO4_IO17                0x1b0b0
                        /* POWER_LED */
                        MX6QDL_PAD_EIM_CS1__GPIO2_IO24                  0x1b0b0
+                       /* ISB_LED */
+                       MX6QDL_PAD_DISP0_DAT10__GPIO4_IO31              0x1b0b0
                >;
        };
 
                >;
        };
 
-       /* YaCO AUX Uart */
-       pinctrl_uart1: uart1grp {
+       pinctrl_pwm3: pwm3grp {
                fsl,pins = <
-                       MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA            0x1b0b1
-                       MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA            0x1b0b1
+                       MX6QDL_PAD_SD4_DAT1__PWM3_OUT                   0x1b0b0
                >;
        };
 
-       pinctrl_uart2: uart2grp {
+       /* YaCO AUX Uart */
+       pinctrl_uart1: uart1grp {
                fsl,pins = <
-                       MX6QDL_PAD_EIM_D26__UART2_RX_DATA               0x1b0b1
-                       MX6QDL_PAD_EIM_D27__UART2_TX_DATA               0x1b0b1
-                       MX6QDL_PAD_EIM_D28__UART2_DTE_CTS_B             0x1b0b1
-                       MX6QDL_PAD_EIM_D29__UART2_DTE_RTS_B             0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT10__UART1_TX_DATA            0x1b0b1
+                       MX6QDL_PAD_CSI0_DAT11__UART1_RX_DATA            0x1b0b1
                >;
        };
 
                >;
        };
 
-       pinctrl_usdhc2: usdhc2grp {
-               fsl,pins = <
-                       MX6QDL_PAD_SD2_CMD__SD2_CMD                     0x170b9
-                       MX6QDL_PAD_SD2_CLK__SD2_CLK                     0x100b9
-                       MX6QDL_PAD_SD2_DAT0__SD2_DATA0                  0x170b9
-                       MX6QDL_PAD_SD2_DAT1__SD2_DATA1                  0x170b9
-                       MX6QDL_PAD_SD2_DAT2__SD2_DATA2                  0x170b9
-                       MX6QDL_PAD_SD2_DAT3__SD2_DATA3                  0x170b9
-                       /* WL12xx IRQ */
-                       MX6QDL_PAD_ENET_TXD0__GPIO1_IO30                0x10880
-               >;
-       };
-
        pinctrl_usdhc3: usdhc3grp {
                fsl,pins = <
                        MX6QDL_PAD_SD3_CMD__SD3_CMD                     0x17099
                        MX6QDL_PAD_SD3_RST__SD3_RESET                   0x1b0b1
                >;
        };
-
-       pinctrl_wifi_npd: wifinpdgrp {
-               fsl,pins = <
-                       MX6QDL_PAD_ENET_RXD1__GPIO1_IO26                0x1b8b0
-               >;
-       };
 };
index 7bad7ca..49ff145 100644 (file)
@@ -6,6 +6,7 @@
 /dts-v1/;
 #include "imx6qp.dtsi"
 #include "imx6qdl-vicut1.dtsi"
+#include "imx6qdl-vicut1-12inch.dtsi"
 
 / {
        model = "Kverneland UT1P Board";
index 25f6f2f..f16c830 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p32", "jedec,spi-nor";
index c7d907c..06a5151 100644 (file)
@@ -50,7 +50,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               cpu@0 {
+               cpu0: cpu@0 {
                        compatible = "arm,cortex-a9";
                        device_type = "cpu";
                        reg = <0x0>;
index 66af78e..a2c79bc 100644 (file)
        pinctrl-0 = <&pinctrl_ecspi1>;
        status = "okay";
 
-       flash: m25p80@0 {
+       flash: flash@0 {
                compatible = "microchip,sst25vf016b";
                spi-max-frequency = <20000000>;
                reg = <0>;
index dce5dcf..7dda425 100644 (file)
        pinctrl-0 = <&pinctrl_qspi2>;
        status = "okay";
 
-       flash0: s25fl128s@0 {
+       flash0: flash@0 {
                reg = <0>;
                #address-cells = <1>;
                #size-cells = <1>;
                spi-tx-bus-width = <4>;
        };
 
-       flash1: s25fl128s@2 {
+       flash1: flash@2 {
                reg = <2>;
                #address-cells = <1>;
                #size-cells = <1>;
index 99f4cf7..969cfe9 100644 (file)
        pinctrl-0 = <&pinctrl_qspi2>;
        status = "okay";
 
-       flash0: n25q256a@0 {
+       flash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q256a", "jedec,spi-nor";
                reg = <0>;
        };
 
-       flash1: n25q256a@2 {
+       flash1: flash@2 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q256a", "jedec,spi-nor";
index a3fde33..1a18c41 100644 (file)
        pinctrl-0 = <&pinctrl_qspi>;
        status = "okay";
 
-       flash0: n25q256a@0 {
+       flash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "micron,n25q256a", "jedec,spi-nor";
index 47d3ce5..acd9365 100644 (file)
@@ -19,7 +19,7 @@
 };
 
 &qspi {
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "spi-nand";
index a095a76..29ed38d 100644 (file)
@@ -18,7 +18,7 @@
 };
 
 &qspi {
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "spi-nand";
index 770f59b..a6cf0f2 100644 (file)
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 2a449a3..09a83db 100644 (file)
@@ -19,7 +19,7 @@
        pinctrl-0 = <&pinctrl_ecspi2>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "mxicy,mx25v8035f", "jedec,spi-nor";
                spi-max-frequency = <50000000>;
                reg = <0>;
index 205e4d4..ec04264 100644 (file)
@@ -11,7 +11,7 @@
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <5>;
                power-supply = <&reg_backlight_en>;
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                status = "disabled";
        };
 
@@ -91,7 +91,6 @@
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "disabled";
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi b/arch/arm/boot/dts/imx6ul-tqma6ul-common.dtsi
new file mode 100644 (file)
index 0000000..eca94ed
--- /dev/null
@@ -0,0 +1,211 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/*
+ * Common for
+ * - TQMa6ULx
+ * - TQMa6ULxL
+ * - TQMa6ULLx
+ * - TQMa6ULLxL
+ */
+
+/ {
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x10000000>;
+       };
+};
+
+&i2c4 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_recovery>;
+       scl-gpios = <&gpio1 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio1 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       pfuze3000: pmic@8 {
+               compatible = "fsl,pfuze3000";
+               reg = <0x08>;
+
+               regulators {
+                       reg_sw1a: sw1a {
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-ramp-delay = <6250>;
+                               /* not used */
+                       };
+
+                       reg_sw1b_core: sw1b {
+                               regulator-min-microvolt = <700000>;
+                               regulator-max-microvolt = <1475000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <6250>;
+                       };
+
+                       reg_sw2: sw2 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_sw3_ddr: sw3 {
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1650000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_swbst: swbst {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5150000>;
+                               /* not used */
+                       };
+
+                       reg_snvs_3v0: vsnvs {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_vrefddr: vrefddr {
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       reg_vccsd: vccsd {
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       reg_v33_3v3: v33 {
+                               regulator-min-microvolt = <2850000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+
+                       reg_vldo1_3v3: vldo1 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               /* not used */
+                       };
+
+                       reg_vldo2: vldo2 {
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1550000>;
+                               /* not used */
+                       };
+
+                       reg_vldo3: vldo3 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               /* not used */
+                       };
+
+                       reg_vldo4: vldo4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       jc42_1a: eeprom-temperature-sensor@1a {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x1a>;
+       };
+
+       m24c64_50: eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+               pagesize = <32>;
+       };
+
+       m24c02_52: eeprom@52 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+               read-only;
+       };
+
+       rtc0: rtc@68 {
+               compatible = "dallas,ds1339";
+               reg = <0x68>;
+       };
+};
+
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pmic>;
+
+       /*
+        * PMIC & temperature sensor IRQ
+        * Both do currently not use IRQ
+        * potentially dangerous if used on baseboard
+        */
+       pmic-int-hog {
+               gpio-hog;
+               gpios = <24 0>;
+               input;
+       };
+};
+
+&qspi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_qspi>;
+       status = "okay";
+
+       flash0: flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <33000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+               reg = <0>;
+       };
+};
+
+/* eMMC */
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz" , "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+
+       bus-width = <8>;
+       disable-wp;
+       non-removable;
+       no-sdio;
+       no-sd;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_TX_DATA__I2C4_SCL       0x4001b8b0
+                       MX6UL_PAD_UART2_RX_DATA__I2C4_SDA       0x4001b8b0
+               >;
+       };
+
+       pinctrl_i2c4_recovery: i2c4recoverygrp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20     0x4001b8b0
+                       MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21     0x4001b8b0
+               >;
+       };
+
+       pinctrl_pmic: pmic {
+               fsl,pins = <
+                       /* PMIC irq */
+                       MX6UL_PAD_CSI_DATA03__GPIO4_IO24        0x1b099
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts b/arch/arm/boot/dts/imx6ul-tqma6ul1-mba6ulx.dts
new file mode 100644 (file)
index 0000000..f2a5f17
--- /dev/null
@@ -0,0 +1,55 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6ul-tqma6ul1.dtsi"
+#include "mba6ulx.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6UL1 SoM on MBa6ULx board";
+       compatible = "tq,imx6ul-tqma6ul1-mba6ulx", "tq,imx6ul-tqma6ul1", "fsl,imx6ul";
+};
+
+/*
+ * Note: can2 and fec2 are enabled on mba6ulx level (for i.MX6ULG2 usage)
+ * and need to be disabled here again
+ */
+&can2 {
+       status = "disabled";
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>, <&pinctrl_enet1_mdc>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       max-speed = <100>;
+                       reg = <0>;
+               };
+       };
+};
+
+&fec2 {
+       /delete-property/ phy-handle;
+       /delete-node/ mdio;
+};
+
+&iomuxc {
+       pinctrl_enet1_mdc: enet1mdcgrp {
+               fsl,pins = <
+                       /* mdio */
+                       MX6UL_PAD_GPIO1_IO07__ENET1_MDC         0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET1_MDIO        0x1b0b0
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi b/arch/arm/boot/dts/imx6ul-tqma6ul1.dtsi
new file mode 100644 (file)
index 0000000..24192d0
--- /dev/null
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+#include "imx6ul-tqma6ul2.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6UL1 SoM";
+       compatible = "tq,imx6ul-tqma6ul1", "fsl,imx6ul";
+};
+
+/*
+ * There are no module specific differences compared to TQMa6UL2,
+ * only external interfaces differ
+ */
+
+/*
+ * Devices not available on i.MX6ULG1 and should not be enabled on
+ * mainboard level (again)
+ */
+&can2 {
+       status = "disabled";
+};
+
+&csi {
+       status = "disabled";
+};
+
+&fec2 {
+       status = "disabled";
+};
+
+&lcdif {
+       status = "disabled";
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts b/arch/arm/boot/dts/imx6ul-tqma6ul2-mba6ulx.dts
new file mode 100644 (file)
index 0000000..0757df2
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6ul-tqma6ul2.dtsi"
+#include "mba6ulx.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6ULx SoM on MBa6ULx board";
+       compatible = "tq,imx6ul-tqma6ul2-mba6ulx", "tq,imx6ul-tqma6ul2", "fsl,imx6ul";
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi b/arch/arm/boot/dts/imx6ul-tqma6ul2.dtsi
new file mode 100644 (file)
index 0000000..e2e95dd
--- /dev/null
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+#include "imx6ul.dtsi"
+#include "imx6ul-tqma6ul-common.dtsi"
+#include "imx6ul-tqma6ulx-common.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6UL2 SoM";
+       compatible = "tq,imx6ul-tqma6ul2", "fsl,imx6ul";
+};
+
+&usdhc2 {
+       fsl,tuning-step = <6>;
+};
+
+&iomuxc {
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x00017051
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x00017051
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x00017051
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x00017051
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x00017051
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x00017051
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x00017051
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x00017051
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x00017051
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x00017051
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170e1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170f1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170e1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170e1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170e1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170e1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170e1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170e1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170e1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170e1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170e1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts b/arch/arm/boot/dts/imx6ul-tqma6ul2l-mba6ulx.dts
new file mode 100644 (file)
index 0000000..9d9b6b7
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6ul-tqma6ul2l.dtsi"
+#include "mba6ulx.dtsi"
+
+/ {
+       model = "TQ Systems TQMa6UL2L SoM on MBa6ULx board";
+       compatible = "tq,imx6ul-tqma6ul2l-mba6ulx", "tq,imx6ul-tqma6ul2l", "fsl,imx6ul";
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi b/arch/arm/boot/dts/imx6ul-tqma6ul2l.dtsi
new file mode 100644 (file)
index 0000000..caf2c5d
--- /dev/null
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+#include "imx6ul.dtsi"
+#include "imx6ul-tqma6ul-common.dtsi"
+#include "imx6ul-tqma6ulxl-common.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6UL2L SoM";
+       compatible = "tq,imx6ul-tqma6ul2l", "fsl,imx6ul";
+};
+
+&usdhc2 {
+       fsl,tuning-step= <6>;
+};
+
+&iomuxc {
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x00017051
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x00017051
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x00017051
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x00017051
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x00017051
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x00017051
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x00017051
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x00017051
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x00017051
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x00017051
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170e1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170f9
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi b/arch/arm/boot/dts/imx6ul-tqma6ulx-common.dtsi
new file mode 100644 (file)
index 0000000..5afb904
--- /dev/null
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/*
+ * Common for
+ * - TQMa6ULx
+ * - TQMa6ULLx
+ */
+
+&m24c64_50 {
+       vcc-supply = <&reg_sw2>;
+};
+
+&m24c02_52 {
+       vcc-supply = <&reg_sw2>;
+};
+
+&reg_sw2 {
+       regulator-boot-on;
+       regulator-always-on;
+};
+
+/* eMMC */
+&usdhc2 {
+       vmmc-supply = <&reg_sw2>;
+       vqmmc-supply = <&reg_vldo4>;
+};
+
+&iomuxc {
+       pinctrl_qspi: qspigrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK      0x70b9
+                       MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70b9
+                       MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01   0x70b9
+                       MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02   0x70b9
+                       MX6UL_PAD_NAND_CLE__QSPI_A_DATA03     0x70b9
+                       MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B      0x70a1
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi b/arch/arm/boot/dts/imx6ul-tqma6ulxl-common.dtsi
new file mode 100644 (file)
index 0000000..ba84a4f
--- /dev/null
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/*
+ * Common for
+ * - TQMa6ULxL
+ * - TQMa6ULLxL
+ */
+
+/ {
+       reg_vin: reg-vin {
+               compatible = "regulator-fixed";
+               regulator-name = "VIN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+};
+
+&m24c64_50 {
+       vcc-supply = <&reg_vin>;
+};
+
+&m24c02_52 {
+       vcc-supply = <&reg_vin>;
+};
+
+/* eMMC */
+&usdhc2 {
+       vmmc-supply = <&reg_vin>;
+       vqmmc-supply = <&reg_vldo4>;
+};
+
+&iomuxc {
+       pinctrl_qspi: qspigrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_WP_B__QSPI_A_SCLK      0x70a9
+                       MX6UL_PAD_NAND_READY_B__QSPI_A_DATA00 0x70a9
+                       MX6UL_PAD_NAND_CE0_B__QSPI_A_DATA01   0x70a9
+                       MX6UL_PAD_NAND_CE1_B__QSPI_A_DATA02   0x70a9
+                       MX6UL_PAD_NAND_CLE__QSPI_A_DATA03     0x70a9
+                       MX6UL_PAD_NAND_DQS__QSPI_A_SS0_B      0x70a1
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-aster.dts b/arch/arm/boot/dts/imx6ull-colibri-aster.dts
new file mode 100644 (file)
index 0000000..d3f2fb7
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2017-2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-nonwifi.dtsi"
+#include "imx6ull-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 256/512MB on Colibri Aster";
+       compatible = "toradex,colibri-imx6ull-aster",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
+
+&atmel_mxt_ts {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-aster.dtsi b/arch/arm/boot/dts/imx6ull-colibri-aster.dtsi
new file mode 100644 (file)
index 0000000..c9133ba
--- /dev/null
@@ -0,0 +1,145 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2017-2022 Toradex
+ */
+
+/ {
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_snvs_gpiokeys>;
+
+               power {
+                       label = "Wake-Up";
+                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+                       linux,code = <KEY_WAKEUP>;
+                       debounce-interval = <10>;
+                       wakeup-source;
+               };
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_5v0: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_usbh_vbus: regulator-usbh-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbh_reg>;
+               regulator-name = "VCC_USB[1-4]";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
+               vin-supply = <&reg_5v0>;
+       };
+};
+
+&adc1 {
+       status = "okay";
+};
+
+&ecspi1 {
+       status = "okay";
+
+       num-cs = <2>;
+       cs-gpios = <
+               &gpio3 26 GPIO_ACTIVE_HIGH /* SODIMM 86 LCD_DATA21 */
+               &gpio4 28 GPIO_ACTIVE_HIGH /* SODIMM 65 CSI_DATA07 */
+       >;
+};
+
+/*
+ * Following SODIMM Pins should not be accessed as GPIO on Aster board:
+ * 134 - AIN5_SCL (no connection)
+ * 127 - Voltage Level Translator OE# signal (IC11 and IC12)
+ *
+ * To configure GPIO to LED5, please disable FEC2 and uncomment the following:
+ *     &iomuxc {
+ *             pinctrl-names = "default";
+ *             pinctrl-0 = <
+ *                     &pinctrl_gpio1
+ *                     &pinctrl_gpio2
+ *                     &pinctrl_gpio3
+ *                     &pinctrl_gpio4
+ *                     &pinctrl_gpio6 - for non-WiFi modules only
+ *                     &pinctrl_gpio7
+ *                     &pinctrl_gpio_aster
+ *             >;
+ *
+ *             pinctrl_gpio_aster: gpio-aster {
+ *                     fsl,pins = <
+ *                             MX6UL_PAD_GPIO1_IO07__GPIO1_IO07    0x1b0b0
+ *                     >;
+ *             };
+ *  };
+ */
+
+&i2c1 {
+       status = "okay";
+
+       m41t0m6: rtc@68 {
+               compatible = "st,m41t0";
+               reg = <0x68>;
+       };
+};
+
+/* PWM <A> */
+&pwm4 {
+       status = "okay";
+};
+
+/* PWM <B> */
+&pwm5 {
+       status = "okay";
+};
+
+/* PWM <C> */
+&pwm6 {
+       status = "okay";
+};
+
+/* PWM <D> */
+&pwm7 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&usbotg1 {
+       vbus-supply = <&reg_usbh_vbus>;
+       status = "okay";
+};
+
+&usbotg2 {
+       vbus-supply = <&reg_usbh_vbus>;
+       status = "okay";
+};
+
+&usdhc1 {
+       vmmc-supply = <&reg_3v3>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts b/arch/arm/boot/dts/imx6ull-colibri-emmc-aster.dts
new file mode 100644 (file)
index 0000000..919c046
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-emmc-nonwifi.dtsi"
+#include "imx6ull-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 1GB (eMMC) on Colibri Aster";
+       compatible = "toradex,colibri-imx6ull-emmc-aster",
+                    "toradex,colibri-imx6ull-emmc",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts b/arch/arm/boot/dts/imx6ull-colibri-emmc-iris-v2.dts
new file mode 100644 (file)
index 0000000..b9060c2
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-emmc-nonwifi.dtsi"
+#include "imx6ull-colibri-iris-v2.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 1G (eMMC) on Colibri Iris V2";
+       compatible = "toradex,colibri-imx6ull-iris-v2",
+                    "toradex,colibri-imx6ull-emmc",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts b/arch/arm/boot/dts/imx6ull-colibri-emmc-iris.dts
new file mode 100644 (file)
index 0000000..0ab71f2
--- /dev/null
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-emmc-nonwifi.dtsi"
+#include "imx6ull-colibri-iris.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 1GB (eMMC) on Colibri Iris";
+       compatible = "toradex,colibri-imx6ull-emmc-iris",
+                    "toradex,colibri-imx6ull-emmc",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
index a099abf..ea23852 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: GPL-2.0+ OR MIT
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2021 Toradex
+ * Copyright 2022 Toradex
  */
 
 #include "imx6ull-colibri.dtsi"
@@ -8,7 +8,7 @@
 / {
        aliases {
                mmc0 = &usdhc2; /* eMMC */
-               mmc1 = &usdhc1; /* MMC 4bit slot */
+               mmc1 = &usdhc1; /* MMC 4-bit slot */
        };
 
        memory@80000000 {
                          "SODIMM_127";
 };
 
+/* NAND */
 &gpmi {
        status = "disabled";
 };
        pinctrl-0 = <&pinctrl_snvs_gpio1 &pinctrl_snvs_gpio3>;
 };
 
+/* eMMC */
 &usdhc2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc2emmc>;
index 08669a1..9bf7111 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2022 Toradex
  */
 
 /dts-v1/;
@@ -9,6 +9,6 @@
 #include "imx6ull-colibri-eval-v3.dtsi"
 
 / {
-       model = "Toradex Colibri iMX6ULL 256MB on Colibri Evaluation Board V3";
+       model = "Toradex Colibri iMX6ULL 256/512MB on Colibri Evaluation Board V3";
        compatible = "toradex,colibri-imx6ull-eval", "fsl,imx6ull";
 };
index a78849f..e299074 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2017 Toradex AG
+ * Copyright 2017-2022 Toradex
  */
 
 / {
@@ -8,20 +8,6 @@
                stdout-path = "serial0:115200n8";
        };
 
-       gpio-keys {
-               compatible = "gpio-keys";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_snvs_gpiokeys>;
-
-               power {
-                       label = "Wake-Up";
-                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
-                       linux,code = <KEY_WAKEUP>;
-                       debounce-interval = <10>;
-                       wakeup-source;
-               };
-       };
-
        /* fixed crystal dedicated to mcp2515 */
        clk16m: clk16m {
                compatible = "fixed-clock";
                clock-frequency = <16000000>;
        };
 
-       panel: panel {
-               compatible = "edt,et057090dhu";
-               backlight = <&bl>;
-               power-supply = <&reg_3v3>;
-
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&lcdif_out>;
-                       };
-               };
-       };
-
        reg_3v3: regulator-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "3.3V";
        status = "okay";
 };
 
-&bl {
-       brightness-levels = <0 4 8 16 32 64 128 255>;
-       default-brightness-level = <6>;
-       power-supply = <&reg_3v3>;
-       pwms = <&pwm4 0 5000000 1>;
-       status = "okay";
-};
-
 &ecspi1 {
        status = "okay";
 
        };
 };
 
-&lcdif {
-       status = "okay";
-
-       port {
-               lcdif_out: endpoint {
-                       remote-endpoint = <&panel_in>;
-               };
-       };
-};
-
 /* PWM <A> */
 &pwm4 {
        status = "okay";
 };
 
 &usbotg1 {
+       vbus-supply = <&reg_usbh_vbus>;
        status = "okay";
 };
 
 };
 
 &usdhc1 {
-       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
-       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_cd>;
-       pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_snvs_usdhc1_cd>;
-       pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_snvs_usdhc1_cd>;
-       pinctrl-3 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_sleep_cd>;
-       cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
-       disable-wp;
-       wakeup-source;
-       keep-power-in-suspend;
        vmmc-supply = <&reg_3v3>;
-       vqmmc-supply = <&reg_sd1_vmmc>;
-       sd-uhs-sdr12;
-       sd-uhs-sdr25;
-       sd-uhs-sdr50;
-       sd-uhs-sdr104;
        status = "okay";
 };
diff --git a/arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts b/arch/arm/boot/dts/imx6ull-colibri-iris-v2.dts
new file mode 100644 (file)
index 0000000..afc1e01
--- /dev/null
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-nonwifi.dtsi"
+#include "imx6ull-colibri-iris-v2.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 256M/512B on Colibri Iris V2";
+       compatible = "toradex,colibri-imx6ull-iris-v2",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
+
+&atmel_mxt_ts {
+       status = "okay";
+};
+
+&gpio1 {
+       /* This turns the LVDS transceiver on */
+       lvds-power-on {
+               gpio-hog;
+               gpios = <14 GPIO_ACTIVE_HIGH>; /* SODIMM 99 */
+               line-name = "LVDS_POWER_ON";
+               output-high;
+       };
+};
+
+&gpio2 {
+       /*
+        * This switches the LVDS transceiver to the single-channel
+        * output mode.
+        */
+       lvds-ch-mode {
+               gpio-hog;
+               gpios = <0 GPIO_ACTIVE_HIGH>; /* SODIMM 55 */
+               line-name = "LVDS_CH_MODE";
+               output-high;
+       };
+
+       /*
+        * This switches the LVDS transceiver to the 24-bit RGB mode.
+        */
+       lvds-rgb-mode {
+               gpio-hog;
+               gpios = <1 GPIO_ACTIVE_HIGH>; /* SODIMM 63 */
+               line-name = "LVDS_RGB_MODE";
+               output-low;
+       };
+};
+
+&gpio5 {
+       /*
+        * This switches the LVDS transceiver to VESA color mapping mode.
+        */
+       lvds-color-map {
+               gpio-hog;
+               gpios = <3 GPIO_ACTIVE_HIGH>; /* SODIMM 95 */
+               line-name = "LVDS_COLOR_MAP";
+               output-low;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi b/arch/arm/boot/dts/imx6ull-colibri-iris-v2.dtsi
new file mode 100644 (file)
index 0000000..93649ca
--- /dev/null
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2022 Toradex
+ */
+
+#include "imx6ull-colibri-iris.dtsi"
+
+/ {
+       reg_3v3_vmmc: regulator-3v3-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3_vmmc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <100>;
+               enable-active-high;
+       };
+};
+
+
+&usdhc1 {
+       cap-power-off-card;
+       vmmc-supply = <&reg_3v3_vmmc>;
+       /delete-property/ keep-power-in-suspend;
+       /delete-property/ no-1-8-v;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-iris.dts b/arch/arm/boot/dts/imx6ull-colibri-iris.dts
new file mode 100644 (file)
index 0000000..4fb97b0
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-nonwifi.dtsi"
+#include "imx6ull-colibri-iris.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 256/512MB on Colibri Iris";
+       compatible = "toradex,colibri-imx6ull-iris",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
+
+&atmel_mxt_ts {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-iris.dtsi b/arch/arm/boot/dts/imx6ull-colibri-iris.dtsi
new file mode 100644 (file)
index 0000000..7f3b37b
--- /dev/null
@@ -0,0 +1,132 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2022 Toradex
+ */
+
+/ {
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_snvs_gpiokeys>;
+
+               power {
+                       label = "Wake-Up";
+                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+                       linux,code = <KEY_WAKEUP>;
+                       debounce-interval = <10>;
+                       wakeup-source;
+               };
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_5v0: regulator-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_usbh_vbus: regulator-usbh-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbh_reg>;
+               regulator-name = "VCC_USB[1-4]";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 2 GPIO_ACTIVE_LOW>;
+               vin-supply = <&reg_5v0>;
+       };
+};
+
+&adc1 {
+       status = "okay";
+};
+
+&gpio1 {
+       /*
+        * uart25_tx_on turns the UART transceiver on. If one wants to turn the
+        * transceiver off, that property has to be deleted and the gpio handled
+        * in userspace.
+        * The same applies to uart1_tx_on.
+        */
+       uart25_tx_on {
+               gpio-hog;
+               gpios = <15 0>;
+               output-high;
+       };
+};
+
+&gpio2 {
+       uart1_tx_on {
+               gpio-hog;
+               gpios = <7 0>;
+               output-high;
+       };
+};
+
+&i2c1 {
+       status = "okay";
+
+       /* M41T0M6 real time clock on carrier board */
+       m41t0m6: rtc@68 {
+               compatible = "st,m41t0";
+               reg = <0x68>;
+       };
+};
+
+/* PWM <A> */
+&pwm4 {
+       status = "okay";
+};
+
+/* PWM <B> */
+&pwm5 {
+       status = "okay";
+};
+
+/* PWM <C> */
+&pwm6 {
+       status = "okay";
+};
+
+/* PWM <D> */
+&pwm7 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart5 {
+       status = "okay";
+};
+
+&usbotg1 {
+       vbus-supply = <&reg_usbh_vbus>;
+       status = "okay";
+};
+
+&usbotg2 {
+       vbus-supply = <&reg_usbh_vbus>;
+       status = "okay";
+};
+
+&usdhc1 {
+       vmmc-supply = <&reg_3v3>;
+       status = "okay";
+};
index 95a11b8..88901db 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2022 Toradex
  */
 
 #include "imx6ull-colibri.dtsi"
        };
 };
 
+&gpio1 {
+       gpio-line-names = "SODIMM_8",
+                         "SODIMM_6",
+                         "SODIMM_129",
+                         "SODIMM_89",
+                         "SODIMM_19",
+                         "SODIMM_21",
+                         "UNUSABLE_SODIMM_180",
+                         "UNUSABLE_SODIMM_184",
+                         "SODIMM_4",
+                         "SODIMM_2",
+                         "SODIMM_106",
+                         "SODIMM_71",
+                         "SODIMM_23",
+                         "SODIMM_31",
+                         "SODIMM_99",
+                         "SODIMM_102",
+                         "SODIMM_33",
+                         "SODIMM_35",
+                         "SODIMM_25",
+                         "SODIMM_27",
+                         "SODIMM_36",
+                         "SODIMM_38",
+                         "SODIMM_32",
+                         "SODIMM_34",
+                         "SODIMM_135",
+                         "SODIMM_77",
+                         "SODIMM_100",
+                         "SODIMM_186",
+                         "SODIMM_196",
+                         "SODIMM_194";
+};
+
+&gpio2 {
+       gpio-line-names = "SODIMM_55",
+                         "SODIMM_63",
+                         "SODIMM_178",
+                         "SODIMM_188",
+                         "SODIMM_73",
+                         "SODIMM_30",
+                         "SODIMM_67",
+                         "SODIMM_104",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_190",
+                         "SODIMM_47",
+                         "SODIMM_192",
+                         "SODIMM_49",
+                         "SODIMM_51",
+                         "SODIMM_53";
+};
+
+&gpio3 {
+       gpio-line-names = "SODIMM_56",
+                         "SODIMM_44",
+                         "SODIMM_68",
+                         "SODIMM_82",
+                         "",
+                         "SODIMM_76",
+                         "SODIMM_70",
+                         "SODIMM_60",
+                         "SODIMM_58",
+                         "SODIMM_78",
+                         "SODIMM_72",
+                         "SODIMM_80",
+                         "SODIMM_46",
+                         "SODIMM_62",
+                         "SODIMM_48",
+                         "SODIMM_74",
+                         "SODIMM_50",
+                         "SODIMM_52",
+                         "SODIMM_54",
+                         "SODIMM_66",
+                         "SODIMM_64",
+                         "SODIMM_57",
+                         "SODIMM_61",
+                         "SODIMM_29",
+                         "SODIMM_37",
+                         "SODIMM_88",
+                         "SODIMM_86",
+                         "SODIMM_92",
+                         "SODIMM_90";
+};
+
+&gpio4 {
+       gpio-line-names = "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_59",
+                         "",
+                         "",
+                         "SODIMM_133",
+                         "",
+                         "SODIMM_28",
+                         "SODIMM_75",
+                         "SODIMM_96",
+                         "SODIMM_81",
+                         "SODIMM_94",
+                         "SODIMM_101",
+                         "SODIMM_103",
+                         "SODIMM_79",
+                         "SODIMM_97",
+                         "SODIMM_69",
+                         "SODIMM_98",
+                         "SODIMM_85",
+                         "SODIMM_65";
+};
+
+&gpio5 {
+       gpio-line-names = "SODIMM_43",
+                         "SODIMM_45",
+                         "SODIMM_137",
+                         "SODIMM_95",
+                         "SODIMM_107",
+                         "SODIMM_131",
+                         "SODIMM_93",
+                         "",
+                         "SODIMM_138",
+                         "",
+                         "SODIMM_105",
+                         "SODIMM_127";
+};
+
 &iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3
-               &pinctrl_gpio4 &pinctrl_gpio5 &pinctrl_gpio6 &pinctrl_gpio7>;
+               &pinctrl_gpio4 &pinctrl_gpio6 &pinctrl_gpio7>;
 };
 
 &iomuxc_snvs {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_snvs_gpio1 &pinctrl_snvs_gpio2 &pinctrl_snvs_gpio3>;
+       pinctrl-0 = <&pinctrl_snvs_gpio1 &pinctrl_snvs_gpio3>;
 };
diff --git a/arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts b/arch/arm/boot/dts/imx6ull-colibri-wifi-aster.dts
new file mode 100644 (file)
index 0000000..b4f65e8
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2017-2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-wifi.dtsi"
+#include "imx6ull-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 512MB on Colibri Aster";
+       compatible = "toradex,colibri-imx6ull-wifi-aster",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
+
+&atmel_mxt_ts {
+       status = "okay";
+};
index df72ce1..1d64d1a 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2022 Toradex
  */
 
 /dts-v1/;
diff --git a/arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts b/arch/arm/boot/dts/imx6ull-colibri-wifi-iris-v2.dts
new file mode 100644 (file)
index 0000000..ce02f8a
--- /dev/null
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-wifi.dtsi"
+#include "imx6ull-colibri-iris-v2.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 512MB on Colibri Iris V2";
+       compatible = "toradex,colibri-imx6ull-wifi-iris-v2",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
+
+&atmel_mxt_ts {
+       status = "okay";
+};
+
+&gpio1 {
+       /* This turns the LVDS transceiver on */
+       lvds-power-on {
+               gpio-hog;
+               gpios = <14 GPIO_ACTIVE_HIGH>; /* SODIMM 99 */
+               line-name = "LVDS_POWER_ON";
+               output-high;
+       };
+};
+
+&gpio2 {
+       /*
+        * This switches the LVDS transceiver to the single-channel
+        * output mode.
+        */
+       lvds-ch-mode {
+               gpio-hog;
+               gpios = <0 GPIO_ACTIVE_HIGH>; /* SODIMM 55 */
+               line-name = "LVDS_CH_MODE";
+               output-high;
+       };
+
+       /*
+        * This switches the LVDS transceiver to the 24-bit RGB mode.
+        */
+       lvds-rgb-mode {
+               gpio-hog;
+               gpios = <1 GPIO_ACTIVE_HIGH>; /* SODIMM 63 */
+               line-name = "LVDS_RGB_MODE";
+               output-low;
+       };
+};
+
+&gpio5 {
+       /*
+        * This switches the LVDS transceiver to VESA color mapping mode.
+        */
+       lvds-color-map {
+               gpio-hog;
+               gpios = <3 GPIO_ACTIVE_HIGH>; /* SODIMM 95 */
+               line-name = "LVDS_COLOR_MAP";
+               output-low;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts b/arch/arm/boot/dts/imx6ull-colibri-wifi-iris.dts
new file mode 100644 (file)
index 0000000..5ac1aa2
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx6ull-colibri-wifi.dtsi"
+#include "imx6ull-colibri-iris.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX6ULL 512MB on Colibri Iris";
+       compatible = "toradex,colibri-imx6ull-wifi-iris",
+                    "toradex,colibri-imx6ull",
+                    "fsl,imx6ull";
+};
+
+&atmel_mxt_ts {
+       status = "okay";
+};
index 9f1e382..db59ee6 100644 (file)
@@ -1,6 +1,6 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2018 Toradex AG
+ * Copyright 2018-2022 Toradex
  */
 
 #include "imx6ull-colibri.dtsi"
        clock-frequency = <792000000>;
 };
 
+&gpio1 {
+       gpio-line-names = "SODIMM_8",
+                         "SODIMM_6",
+                         "SODIMM_129",
+                         "",
+                         "SODIMM_19",
+                         "SODIMM_21",
+                         "UNUSABLE_SODIMM_180",
+                         "UNUSABLE_SODIMM_184",
+                         "SODIMM_4",
+                         "SODIMM_2",
+                         "SODIMM_106",
+                         "SODIMM_71",
+                         "SODIMM_23",
+                         "SODIMM_31",
+                         "SODIMM_99",
+                         "SODIMM_102",
+                         "SODIMM_33",
+                         "SODIMM_35",
+                         "SODIMM_25",
+                         "SODIMM_27",
+                         "SODIMM_36",
+                         "SODIMM_38",
+                         "SODIMM_32",
+                         "SODIMM_34",
+                         "SODIMM_135",
+                         "SODIMM_77",
+                         "SODIMM_100",
+                         "SODIMM_186",
+                         "SODIMM_196",
+                         "SODIMM_194";
+};
+
+&gpio2 {
+       gpio-line-names = "SODIMM_55",
+                         "SODIMM_63",
+                         "SODIMM_178",
+                         "SODIMM_188",
+                         "SODIMM_73",
+                         "SODIMM_30",
+                         "SODIMM_67",
+                         "SODIMM_104",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_190",
+                         "SODIMM_47",
+                         "SODIMM_192",
+                         "SODIMM_49",
+                         "SODIMM_51",
+                         "SODIMM_53";
+};
+
+&gpio3 {
+       gpio-line-names = "SODIMM_56",
+                         "SODIMM_44",
+                         "SODIMM_68",
+                         "SODIMM_82",
+                         "",
+                         "SODIMM_76",
+                         "SODIMM_70",
+                         "SODIMM_60",
+                         "SODIMM_58",
+                         "SODIMM_78",
+                         "SODIMM_72",
+                         "SODIMM_80",
+                         "SODIMM_46",
+                         "SODIMM_62",
+                         "SODIMM_48",
+                         "SODIMM_74",
+                         "SODIMM_50",
+                         "SODIMM_52",
+                         "SODIMM_54",
+                         "SODIMM_66",
+                         "SODIMM_64",
+                         "SODIMM_57",
+                         "SODIMM_61",
+                         "SODIMM_29",
+                         "SODIMM_37",
+                         "SODIMM_88",
+                         "SODIMM_86",
+                         "SODIMM_92",
+                         "SODIMM_90";
+};
+
+&gpio4 {
+       gpio-line-names = "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_59",
+                         "",
+                         "",
+                         "SODIMM_133",
+                         "",
+                         "SODIMM_28",
+                         "SODIMM_75",
+                         "SODIMM_96",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_69",
+                         "SODIMM_98",
+                         "SODIMM_85",
+                         "SODIMM_65";
+};
+
+&gpio5 {
+       gpio-line-names = "SODIMM_43",
+                         "SODIMM_45",
+                         "SODIMM_137",
+                         "SODIMM_95",
+                         "SODIMM_107",
+                         "SODIMM_131",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_105";
+};
+
 &iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3
-               &pinctrl_gpio4 &pinctrl_gpio5 &pinctrl_gpio7>;
+               &pinctrl_gpio4 &pinctrl_gpio7>;
 
 };
 
 &iomuxc_snvs {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_snvs_gpio1 &pinctrl_snvs_gpio2>;
+       pinctrl-0 = <&pinctrl_snvs_gpio1>;
 };
 
 &usdhc2 {
index 951a2a6..15621e0 100644 (file)
@@ -1,22 +1,54 @@
-// SPDX-License-Identifier: GPL-2.0+ OR MIT
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
- * Copyright 2018-2021 Toradex
+ * Copyright 2018-2022 Toradex
  */
 
 #include "imx6ull.dtsi"
 
 / {
+       /* Ethernet aliases to ensure correct MAC addresses */
        aliases {
                ethernet0 = &fec2;
                ethernet1 = &fec1;
        };
 
-       bl: backlight {
+       backlight: backlight {
                compatible = "pwm-backlight";
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               enable-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_gpio_bl_on>;
-               enable-gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>;
-               status = "disabled";
+               power-supply = <&reg_3v3>;
+               pwms = <&pwm4 0 5000000 1>;
+               status = "okay";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_snvs_gpiokeys>;
+
+               wakeup {
+                       debounce-interval = <10>;
+                       gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; /* SODIMM 45 */
+                       label = "Wake-Up";
+                       linux,code = <KEY_WAKEUP>;
+                       wakeup-source;
+               };
+       };
+
+       panel_dpi: panel-dpi {
+               compatible = "edt,et057090dhu";
+               backlight = <&backlight>;
+               power-supply = <&reg_3v3>;
+               status = "okay";
+
+               port {
+                       lcd_panel_in: endpoint {
+                               remote-endpoint = <&lcdif_out>;
+                       };
+               };
        };
 
        reg_module_3v3: regulator-module-3v3 {
@@ -35,7 +67,7 @@
                regulator-max-microvolt = <3300000>;
        };
 
-       reg_sd1_vmmc: regulator-sd1-vmmc {
+       reg_sd1_vqmmc: regulator-sd1-vqmmc {
                compatible = "regulator-gpio";
                gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
                pinctrl-names = "default";
                states = <1800000 0x1 3300000 0x0>;
                vin-supply = <&reg_module_3v3>;
        };
+
+       reg_eth_phy: regulator-eth-phy {
+               compatible = "regulator-fixed-clock";
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "+V3.3_ETH";
+               regulator-type = "voltage";
+               vin-supply = <&reg_module_3v3>;
+               clocks = <&clks IMX6UL_CLK_ENET2_REF_125M>;
+               startup-delay-us = <150000>;
+       };
 };
 
 &adc1 {
        num-channels = <10>;
        vref-supply = <&reg_module_3v3_avdd>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc1>;
 };
 
 &can1 {
        pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
 };
 
+/* Ethernet */
 &fec2 {
        pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_enet2>;
        pinctrl-1 = <&pinctrl_enet2_sleep>;
        phy-mode = "rmii";
        phy-handle = <&ethphy1>;
+       phy-supply = <&reg_eth_phy>;
        status = "okay";
 
        mdio {
        };
 };
 
+/* NAND */
 &gpmi {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpmi_nand>;
+       fsl,use-minimum-ecc;
        nand-on-flash-bbt;
        nand-ecc-mode = "hw";
        nand-ecc-strength = <8>;
        status = "okay";
 };
 
+/* I2C3_SDA/SCL on SODIMM 194/196 (e.g. RTC on carrier board) */
 &i2c1 {
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c1>;
        pinctrl-1 = <&pinctrl_i2c1_gpio>;
        sda-gpios = <&gpio1 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        scl-gpios = <&gpio1 28 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       /* Atmel maxtouch controller */
+       atmel_mxt_ts: touchscreen@4a {
+               compatible = "atmel,maxtouch";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_atmel_conn>;
+               reg = <0x4a>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <4 IRQ_TYPE_EDGE_FALLING>;       /* SODIMM 107 / INT */
+               reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;    /* SODIMM 106 / RST */
+               status = "disabled";
+       };
 };
 
+/*
+ * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
+ * touch screen controller
+ */
 &i2c2 {
+       /* Use low frequency to compensate for the high pull-up values. */
+       clock-frequency = <40000>;
        pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c2>;
        pinctrl-1 = <&pinctrl_i2c2_gpio>;
        scl-gpios = <&gpio1 30 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        status = "okay";
 
-       ad7879@2c {
+       ad7879_ts: touchscreen@2c {
                compatible = "adi,ad7879-1";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_snvs_ad7879_int>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lcdif_dat
                     &pinctrl_lcdif_ctrl>;
+
+       port {
+               lcdif_out: endpoint {
+                       remote-endpoint = <&lcd_panel_in>;
+               };
+       };
 };
 
+/* PWM <A> */
 &pwm4 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
 };
 
+/* PWM <B> */
 &pwm5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm5>;
 };
 
+/* PWM <C> */
 &pwm6 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm6>;
 };
 
+/* PWM <D> */
 &pwm7 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm7>;
        status = "disabled";
 };
 
+/* Colibri UART_A */
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1 &pinctrl_uart1_ctrl1>;
        fsl,dte-mode;
 };
 
+/* Colibri UART_B */
 &uart2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart2>;
        fsl,dte-mode;
 };
 
+/* Colibri UART_C */
 &uart5 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart5>;
        fsl,dte-mode;
 };
 
+/* Colibri USBC */
 &usbotg1 {
        dr_mode = "otg";
        srp-disable;
        adp-disable;
 };
 
+/* Colibri USBH */
 &usbotg2 {
        dr_mode = "host";
 };
 
+/* Colibri MMC/SD */
 &usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_cd>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_snvs_usdhc1_cd>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_snvs_usdhc1_cd>;
+       pinctrl-3 = <&pinctrl_usdhc1 &pinctrl_snvs_usdhc1_cd_sleep>;
        assigned-clocks = <&clks IMX6UL_CLK_USDHC1_SEL>, <&clks IMX6UL_CLK_USDHC1>;
        assigned-clock-parents = <&clks IMX6UL_CLK_PLL2_PFD2>;
        assigned-clock-rates = <0>, <198000000>;
+       bus-width = <4>;
+       cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; /* MMC_CD */
+       disable-wp;
+       keep-power-in-suspend;
+       no-1-8-v;
+       vqmmc-supply = <&reg_sd1_vqmmc>;
+       wakeup-source;
 };
 
 &wdog1 {
 };
 
 &iomuxc {
-       pinctrl_can_int: canint-grp {
+       pinctrl_adc1: adc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO00__GPIO1_IO00        0x3000 /* SODIMM 8 */
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0x3000 /* SODIMM 6 */
+                       MX6UL_PAD_GPIO1_IO08__GPIO1_IO08        0x3000 /* SODIMM 4 */
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x3000 /* SODIMM 2 */
+               >;
+       };
+
+       pinctrl_atmel_adap: atmeladapgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_DQS__GPIO4_IO16          0xb0a0  /* SODIMM 28 */
+                       MX6UL_PAD_ENET1_TX_EN__GPIO2_IO05       0xb0a0  /* SODIMM 30 */
+               >;
+       };
+
+       pinctrl_atmel_conn: atmelconngrp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_MOD__GPIO1_IO10          0xb0a0  /* SODIMM 106 */
+                       MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04     0xb0a0  /* SODIMM 107 */
+               >;
+       };
+
+       pinctrl_can_int: canintgrp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04    0x13010 /* SODIMM 73 */
                >;
        };
 
-       pinctrl_enet2: enet2-grp {
+       pinctrl_enet2: enet2grp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
                        MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
                >;
        };
 
-       pinctrl_enet2_sleep: enet2sleepgrp {
+       pinctrl_enet2_sleep: enet2-sleepgrp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO06__GPIO1_IO06        0x0
                        MX6UL_PAD_GPIO1_IO07__GPIO1_IO07        0x0
                >;
        };
 
-       pinctrl_ecspi1_cs: ecspi1-cs-grp {
+       pinctrl_ecspi1_cs: ecspi1csgrp {
                fsl,pins = <
                        MX6UL_PAD_LCD_DATA21__GPIO3_IO26        0x70a0  /* SODIMM 86 */
                >;
        };
 
-       pinctrl_ecspi1: ecspi1-grp {
+       pinctrl_ecspi1: ecspi1grp {
                fsl,pins = <
                        MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK       0x000a0 /* SODIMM 88 */
                        MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI       0x000a0 /* SODIMM 92 */
                >;
        };
 
-       pinctrl_flexcan1: flexcan1-grp {
+       pinctrl_flexcan1: flexcan1grp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_RX_DATA0__FLEXCAN1_TX   0x1b020
                        MX6UL_PAD_ENET1_RX_DATA1__FLEXCAN1_RX   0x1b020
                >;
        };
 
-       pinctrl_flexcan2: flexcan2-grp {
+       pinctrl_flexcan2: flexcan2grp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_TX_DATA0__FLEXCAN2_RX   0x1b020
                        MX6UL_PAD_ENET1_RX_EN__FLEXCAN2_TX      0x1b020
                >;
        };
 
-       pinctrl_gpio_bl_on: gpio-bl-on-grp {
+       pinctrl_gpio_bl_on: gpioblongrp {
                fsl,pins = <
                        MX6UL_PAD_JTAG_TMS__GPIO1_IO11          0x30a0  /* SODIMM 71 */
                >;
        };
 
-       pinctrl_gpio1: gpio1-grp {
+       pinctrl_gpio1: gpio1grp {
                fsl,pins = <
                        MX6UL_PAD_UART3_RX_DATA__GPIO1_IO25     0x10b0 /* SODIMM 77 */
                        MX6UL_PAD_JTAG_TCK__GPIO1_IO14          0x70a0 /* SODIMM 99 */
                >;
        };
 
-       pinctrl_gpio2: gpio2-grp { /* Camera */
+       pinctrl_gpio2: gpio2grp { /* Camera */
                fsl,pins = <
                        MX6UL_PAD_CSI_DATA04__GPIO4_IO25        0x10b0 /* SODIMM 69 */
                        MX6UL_PAD_CSI_MCLK__GPIO4_IO17          0x10b0 /* SODIMM 75 */
                >;
        };
 
-       pinctrl_gpio3: gpio3-grp { /* CAN2 */
+       pinctrl_gpio3: gpio3grp { /* CAN2 */
                fsl,pins = <
                        MX6UL_PAD_ENET1_RX_EN__GPIO2_IO02       0x10b0 /* SODIMM 178 */
                        MX6UL_PAD_ENET1_TX_DATA0__GPIO2_IO03    0x10b0 /* SODIMM 188 */
                >;
        };
 
-       pinctrl_gpio4: gpio4-grp {
+       pinctrl_gpio4: gpio4grp {
                fsl,pins = <
                        MX6UL_PAD_CSI_DATA07__GPIO4_IO28        0x10b0 /* SODIMM 65 */
                >;
        };
 
-       pinctrl_gpio5: gpio5-grp { /* ATMEL MXT TOUCH */
-               fsl,pins = <
-                       MX6UL_PAD_JTAG_MOD__GPIO1_IO10          0xb0a0 /* SODIMM 106 */
-               >;
-       };
-
-       pinctrl_gpio6: gpio6-grp { /* Wifi pins */
+       pinctrl_gpio6: gpio6grp { /* Wifi pins */
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x10b0 /* SODIMM 89 */
                        MX6UL_PAD_CSI_DATA02__GPIO4_IO23        0x10b0 /* SODIMM 79 */
                >;
        };
 
-       pinctrl_gpio7: gpio7-grp { /* CAN1 */
+       pinctrl_gpio7: gpio7grp { /* CAN1 */
                fsl,pins = <
                        MX6UL_PAD_ENET1_RX_DATA0__GPIO2_IO00    0xb0b0/* SODIMM 55 */
                        MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01    0xb0b0 /* SODIMM 63 */
 
        /*
         * With an eMMC instead of a raw NAND device the following pins
-        * are available at SODIMM pins
+        * are available at SODIMM pins.
         */
-       pinctrl_gpmi_gpio: gpmi-gpio-grp {
+       pinctrl_gpmi_gpio: gpmigpiogrp {
                fsl,pins = <
                        MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x10b0 /* SODIMM 140 */
                        MX6UL_PAD_NAND_CE0_B__GPIO4_IO13        0x10b0 /* SODIMM 144 */
                >;
        };
 
-       pinctrl_gpmi_nand: gpmi-nand-grp {
+       pinctrl_gpmi_nand: gpminandgrp {
                fsl,pins = <
                        MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0x100a9
                        MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0x100a9
                >;
        };
 
-       pinctrl_i2c1: i2c1-grp {
+       pinctrl_i2c1: i2c1grp {
                fsl,pins = <
                        MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0    /* SODIMM 196 */
                        MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0    /* SODIMM 194 */
                >;
        };
 
-       pinctrl_i2c1_gpio: i2c1-gpio-grp {
+       pinctrl_i2c1_gpio: i2c1-gpiogrp {
                fsl,pins = <
                        MX6UL_PAD_UART4_TX_DATA__GPIO1_IO28 0x4001b8b0  /* SODIMM 196 */
                        MX6UL_PAD_UART4_RX_DATA__GPIO1_IO29 0x4001b8b0  /* SODIMM 194 */
                >;
        };
 
-       pinctrl_i2c2: i2c2-grp {
+       pinctrl_i2c2: i2c2grp {
                fsl,pins = <
-                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001b8b0
-                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
+                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL 0x4001f8b0
+                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001f8b0
                >;
        };
 
-       pinctrl_i2c2_gpio: i2c2-gpio-grp {
+       pinctrl_i2c2_gpio: i2c2-gpiogrp {
                fsl,pins = <
-                       MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x4001b8b0
-                       MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x4001b8b0
+                       MX6UL_PAD_UART5_TX_DATA__GPIO1_IO30 0x4001f8b0
+                       MX6UL_PAD_UART5_RX_DATA__GPIO1_IO31 0x4001f8b0
                >;
        };
 
-       pinctrl_lcdif_dat: lcdif-dat-grp {
+       pinctrl_lcdif_dat: lcdifdatgrp {
                fsl,pins = <
                        MX6UL_PAD_LCD_DATA00__LCDIF_DATA00 0x00079      /* SODIMM 76 */
                        MX6UL_PAD_LCD_DATA01__LCDIF_DATA01 0x00079      /* SODIMM 70 */
                >;
        };
 
-       pinctrl_lcdif_ctrl: lcdif-ctrl-grp {
+       pinctrl_lcdif_ctrl: lcdifctrlgrp {
                fsl,pins = <
                        MX6UL_PAD_LCD_CLK__LCDIF_CLK        0x00079     /* SODIMM 56 */
                        MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE  0x00079     /* SODIMM 44 */
                >;
        };
 
-       pinctrl_pwm4: pwm4-grp {
+       pinctrl_pwm4: pwm4grp {
                fsl,pins = <
                        MX6UL_PAD_NAND_WP_B__PWM4_OUT   0x00079         /* SODIMM 59 */
                >;
        };
 
-       pinctrl_pwm5: pwm5-grp {
+       pinctrl_pwm5: pwm5grp {
                fsl,pins = <
                        MX6UL_PAD_NAND_DQS__PWM5_OUT    0x00079         /* SODIMM 28 */
                >;
        };
 
-       pinctrl_pwm6: pwm6-grp {
+       pinctrl_pwm6: pwm6grp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_TX_EN__PWM6_OUT 0x00079         /* SODIMM 30 */
                >;
        };
 
-       pinctrl_pwm7: pwm7-grp {
+       pinctrl_pwm7: pwm7grp {
                fsl,pins = <
                        MX6UL_PAD_ENET1_TX_CLK__PWM7_OUT        0x00079 /* SODIMM 67 */
                >;
        };
 
-       pinctrl_uart1: uart1-grp {
+       pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX6UL_PAD_UART1_TX_DATA__UART1_DTE_RX   0x1b0b1 /* SODIMM 33 */
                        MX6UL_PAD_UART1_RX_DATA__UART1_DTE_TX   0x1b0b1 /* SODIMM 35 */
                >;
        };
 
-       pinctrl_uart1_ctrl1: uart1-ctrl1-grp { /* Additional DTR, DCD */
+       pinctrl_uart1_ctrl1: uart1ctrl1grp { /* Additional DTR, DCD */
                fsl,pins = <
-                       MX6UL_PAD_JTAG_TDI__GPIO1_IO13          0x70a0 /* SODIMM 31 */
-                       MX6UL_PAD_LCD_DATA18__GPIO3_IO23        0x10b0 /* SODIMM 29 */
-                       MX6UL_PAD_JTAG_TDO__GPIO1_IO12          0x90b1 /* SODIMM 23 */
-                       MX6UL_PAD_LCD_DATA19__GPIO3_IO24        0x10b0 /* SODIMM 37 */
+                       MX6UL_PAD_JTAG_TDI__GPIO1_IO13          0x70a0 /* SODIMM 31 / DCD */
+                       MX6UL_PAD_LCD_DATA18__GPIO3_IO23        0x10b0 /* SODIMM 29 / DSR */
+                       MX6UL_PAD_JTAG_TDO__GPIO1_IO12          0x90b1 /* SODIMM 23 / DTR */
+                       MX6UL_PAD_LCD_DATA19__GPIO3_IO24        0x10b0 /* SODIMM 37 / RI */
                >;
        };
 
-       pinctrl_uart2: uart2-grp {
+       pinctrl_uart2: uart2grp {
                fsl,pins = <
                        MX6UL_PAD_UART2_TX_DATA__UART2_DTE_RX   0x1b0b1 /* SODIMM 36 */
                        MX6UL_PAD_UART2_RX_DATA__UART2_DTE_TX   0x1b0b1 /* SODIMM 38 */
                        MX6UL_PAD_UART2_RTS_B__UART2_DTE_CTS    0x1b0b1 /* SODIMM 34 */
                >;
        };
-       pinctrl_uart5: uart5-grp {
+       pinctrl_uart5: uart5grp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO04__UART5_DTE_RX      0x1b0b1 /* SODIMM 19 */
                        MX6UL_PAD_GPIO1_IO05__UART5_DTE_TX      0x1b0b1 /* SODIMM 21 */
                >;
        };
 
-       pinctrl_usbh_reg: gpio-usbh-reg {
+       pinctrl_usbh_reg: usbhreggrp {
                fsl,pins = <
-                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0x10b0 /* SODIMM 129 */
+                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0x10b0 /* SODIMM 129 / USBH_PEN */
                >;
        };
 
-       pinctrl_usdhc1: usdhc1-grp {
+       pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
-                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x17059 /* SODIMM 47 */
-                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x10059 /* SODIMM 190 */
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x10059 /* SODIMM 47 */
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x17059 /* SODIMM 190 */
                        MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x17059 /* SODIMM 192 */
                        MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x17059 /* SODIMM 49 */
                        MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x17059 /* SODIMM 51 */
                >;
        };
 
-       pinctrl_usdhc1_100mhz: usdhc1-100mhz-grp {
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
                fsl,pins = <
-                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x170b9
-                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x100b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
                        MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170b9
                        MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170b9
                        MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170b9
                >;
        };
 
-       pinctrl_usdhc1_200mhz: usdhc1-200mhz-grp {
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
                fsl,pins = <
-                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x170f9
-                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x100f9
-                       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
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
+                       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: usdhc2-grp {
+       pinctrl_usdhc2: usdhc2grp {
                fsl,pins = <
                        MX6UL_PAD_CSI_DATA00__USDHC2_DATA0      0x17069
                        MX6UL_PAD_CSI_DATA01__USDHC2_DATA1      0x17069
                        MX6UL_PAD_CSI_DATA02__USDHC2_DATA2      0x17069
                        MX6UL_PAD_CSI_DATA03__USDHC2_DATA3      0x17069
                        MX6UL_PAD_CSI_HSYNC__USDHC2_CMD         0x17069
-                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK         0x17069
+                       MX6UL_PAD_CSI_VSYNC__USDHC2_CLK         0x10069
 
                        MX6UL_PAD_GPIO1_IO03__OSC32K_32K_OUT    0x10
                >;
                >;
        };
 
-       pinctrl_wdog: wdog-grp {
+       pinctrl_wdog: wdoggrp {
                fsl,pins = <
                        MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY    0x30b0
                >;
 };
 
 &iomuxc_snvs {
-       pinctrl_snvs_gpio1: snvs-gpio1-grp {
+       pinctrl_snvs_gpio1: snvsgpio1grp {
                fsl,pins = <
                        MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06     0x110a0 /* SODIMM 93 */
                        MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03     0x110a0 /* SODIMM 95 */
                        MX6ULL_PAD_BOOT_MODE0__GPIO5_IO10       0x1b0a0 /* SODIMM 105 */
-                       MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05     0x0b0a0 /* SODIMM 131 */
+                       MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05     0x0b0a0 /* SODIMM 131 / USBH_OC */
                        MX6ULL_PAD_SNVS_TAMPER8__GPIO5_IO08     0x110a0 /* SODIMM 138 */
                >;
        };
 
-       pinctrl_snvs_gpio2: snvs-gpio2-grp { /* ATMEL MXT TOUCH */
-               fsl,pins = <
-                       MX6ULL_PAD_SNVS_TAMPER4__GPIO5_IO04     0xb0a0  /* SODIMM 107 */
-               >;
-       };
-
-       pinctrl_snvs_gpio3: snvs-gpio3-grp { /* Wifi pins */
+       pinctrl_snvs_gpio3: snvsgpio3grp { /* Wifi pins */
                fsl,pins = <
                        MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11       0x130a0 /* SODIMM 127 */
                >;
        };
 
-       pinctrl_snvs_ad7879_int: snvs-ad7879-int-grp { /* TOUCH Interrupt */
+       pinctrl_snvs_ad7879_int: snvsad7879intgrp { /* TOUCH Interrupt */
                fsl,pins = <
                        MX6ULL_PAD_SNVS_TAMPER7__GPIO5_IO07     0x100b0
                >;
        };
 
-       pinctrl_snvs_reg_sd: snvs-reg-sd-grp {
+       pinctrl_snvs_reg_sd: snvsregsdgrp {
                fsl,pins = <
                        MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09     0x400100b0
                >;
        };
 
-       pinctrl_snvs_usbc_det: snvs-usbc-det-grp {
+       pinctrl_snvs_usbc_det: snvsusbcdetgrp {
                fsl,pins = <
                        MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02     0x130b0
                >;
        };
 
-       pinctrl_snvs_gpiokeys: snvs-gpiokeys-grp {
+       pinctrl_snvs_gpiokeys: snvsgpiokeysgrp {
                fsl,pins = <
-                       MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01     0x130a0 /* SODIMM 45 */
+                       MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01     0x130a0 /* SODIMM 45 / WAKE_UP */
                >;
        };
 
-       pinctrl_snvs_usdhc1_cd: snvs-usdhc1-cd-grp {
+       pinctrl_snvs_usdhc1_cd: snvsusdhc1cdgrp {
                fsl,pins = <
-                       MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00     0x1b0a0 /* SODIMM 43 */
+                       MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00     0x1b0a0 /* SODIMM 43 / MMC_CD */
                >;
        };
 
-       pinctrl_snvs_usdhc1_sleep_cd: snvs-usdhc1-cd-grp-slp {
+       pinctrl_snvs_usdhc1_cd_sleep: snvsusdhc1cd-sleepgrp {
                fsl,pins = <
                        MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00     0x0
                >;
        };
 
-       pinctrl_snvs_wifi_pdn: snvs-wifi-pdn-grp {
+       pinctrl_snvs_wifi_pdn: snvswifipdngrp {
                fsl,pins = <
                        MX6ULL_PAD_BOOT_MODE1__GPIO5_IO11       0x130a0
                >;
index b7e9842..d000606 100644 (file)
@@ -18,7 +18,7 @@
 };
 
 &qspi {
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "spi-nand";
diff --git a/arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts b/arch/arm/boot/dts/imx6ull-phytec-tauri-emmc.dts
new file mode 100644 (file)
index 0000000..14adb87
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Alexander Bauer <a.bauer@phytec.de>
+ */
+
+/dts-v1/;
+#include "imx6ull-phytec-tauri.dtsi"
+
+/ {
+       model = "PHYTEC phyGate-Tauri i.MX6 UltraLite";
+       compatible = "phytec,imx6ull-phygate-tauri",
+                    "phytec,imx6ull-phygate-tauri-emmc",
+                    "phytec,imx6ull-pcl063", "fsl,imx6ull";
+};
+
+/* EMMC-Version */
+&usdhc2 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts b/arch/arm/boot/dts/imx6ull-phytec-tauri-nand.dts
new file mode 100644 (file)
index 0000000..ae396ac
--- /dev/null
@@ -0,0 +1,20 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Alexander Bauer <a.bauer@phytec.de>
+ */
+
+/dts-v1/;
+#include "imx6ull-phytec-tauri.dtsi"
+
+/ {
+       model = "PHYTEC phyGate-Tauri i.MX6 UltraLite";
+       compatible = "phytec,imx6ull-phygate-tauri",
+                    "phytec,imx6ull-phygate-tauri-nand",
+                    "phytec,imx6ull-pcl063", "fsl,imx6ull";
+};
+
+/* NAND-Version */
+&gpmi {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi b/arch/arm/boot/dts/imx6ull-phytec-tauri.dtsi
new file mode 100644 (file)
index 0000000..5464a52
--- /dev/null
@@ -0,0 +1,588 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2021 PHYTEC Messtechnik GmbH
+ * Author: Alexander Bauer <a.bauer@phytec.de>
+ */
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include "imx6ull-phytec-phycore-som.dtsi"
+
+/ {
+
+       model = "PHYTEC phyGate-Tauri i.MX6 UltraLite";
+       compatible = "phytec,imx6ull-phygate-tauri",
+                    "phytec,imx6ull-pcl063", "fsl,imx6ull";
+
+       aliases {
+               rtc0 = &i2c_rtc;
+               rtc1 = &snvs_rtc;
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-key";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               key {
+                       label = "KEY-A";
+                       gpios = <&gpio1 18 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_A>;
+                       wakeup-source;
+               };
+       };
+
+       reg_adc1_vref_3v3: regulator-vref-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vref-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_s25fl064_hold: regulator-s25fl064-hold {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_s25fl064_hold>;
+               compatible = "regulator-fixed";
+               regulator-name = "s25fl064_hold";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio3 17 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_usb_hub_vbus: regulator-hub-otg1-vbus {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbhubpwr>;
+               compatible = "regulator-fixed";
+               regulator-name = "usb_hub_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio5 5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_usb_otg1_vbus: regulator-usb-otg1-vbus {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbotg1pwr>;
+               compatible = "regulator-fixed";
+               regulator-name = "usb_otg1_vbus";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       user_leds: user-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_user_leds>,
+                           <&pinctrl_user_leds_snvs>;
+
+               user-led1 {
+                       label = "yellow";
+                       gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "off";
+               };
+
+               user-led2 {
+                       label = "red";
+                       gpios = <&gpio5 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "off";
+               };
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       status = "okay";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       status = "okay";
+};
+
+&ecspi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>,
+                   <&pinctrl_ecspi1_cs>;
+       cs-gpios = <&gpio3 26 GPIO_ACTIVE_LOW>,
+                  <&gpio3 10 GPIO_ACTIVE_LOW>,
+                  <&gpio3 11 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       tpm_tis: tpm@1 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tpm>;
+               compatible = "tcg,tpm_tis-spi";
+               reg = <1>;
+               spi-max-frequency = <20000000>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       s25fl064: flash@2 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = " jedec,spi-nor";
+               reg = <2>;
+               spi-max-frequency = <40000000>;
+               m25p,fast-read;
+               status = "disabled";
+       };
+};
+
+&ecspi3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi3>;
+       cs-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+       dmas = <&sdma 7 8 0>,
+              <&sdma 8 8 0>;
+       dma-names = "rx", "tx";
+       status = "okay";
+};
+
+&ethphy1 {
+       status = "okay";
+};
+
+&fec1 {
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy2>;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       tmp102: tmp@49 {
+               compatible = "ti,tmp102";
+               reg = <0x49>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tempsense>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+               #thermal-sensor-cells = <1>;
+       };
+
+       i2c_rtc: rtc@68 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc_int>;
+               compatible = "microcrystal,rv4162";
+               reg = <0x68>;
+               interrupt-parent = <&gpio5>;
+               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&i2c2 {
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       sda-gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       scl-gpios = <&gpio1 0 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       sda-gpios = <&gpio3 5 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       scl-gpios = <&gpio3 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&i2c4 {
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_gpio>;
+       sda-gpios = <&gpio3 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       scl-gpios = <&gpio3 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&mdio {
+       ethphy2: ethernet-phy@2 {
+               reg = <2>;
+               micrel,led-mode = <1>;
+               clocks = <&clks IMX6UL_CLK_ENET2_REF>;
+               clock-names = "rmii-ref";
+               status = "okay";
+       };
+};
+
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm3>;
+       status = "okay";
+};
+
+&pwm6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm6>;
+       status = "okay";
+};
+
+&pwm7 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm7>;
+       status = "okay";
+};
+
+&pwm8 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm8>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+/* UART4 * RS485  */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       rts-gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>;
+       rs485-rts-active-high;
+       linux,rs485-enabled-at-boot-time;
+       status = "okay";
+};
+
+/* UART5 * RS232  */
+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart7 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart7>;
+       status = "okay";
+};
+
+/* USB */
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_otg1>;
+       vbus-supply = <&reg_usb_otg1_vbus>;
+       dr_mode = "host";
+       disable-over-current;
+       status = "okay";
+};
+
+&usbotg2 {
+       vbus-supply = <&reg_usb_hub_vbus>;
+       disable-over-current;
+       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>;
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       wakeup-source;
+       status = "okay";
+};
+
+&usdhc2 {
+       status = "disabled";
+};
+
+&iomuxc_snvs {
+       pinctrl_rtc_int: rtcintgrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01     0x17059
+               >;
+       };
+
+       pinctrl_stmpe: stmpegrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03     0x17059
+               >;
+       };
+
+       pinctrl_tempsense: tempsensegrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00     0x17059
+               >;
+       };
+
+       pinctrl_tpm: tpmgrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02     0x17059
+               >;
+       };
+
+       pinctrl_usbhubpwr: usbhubpwrgrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05     0x17059
+               >;
+       };
+
+       pinctrl_user_leds_snvs: user_ledsgrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER9__GPIO5_IO09     0x79
+               >;
+       };
+};
+
+&iomuxc {
+       pinctrl_gpio: gpiogrp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_DATA05__GPIO4_IO26        0x17059  /* nUART_MUX_RS232 */
+                       MX6UL_PAD_CSI_DATA04__GPIO4_IO25        0x17059  /* nUART_MUX_DUAL_RX_TX */
+               >;
+       };
+
+       pinctrl_gpio_keys: gpiokeysgrp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x79
+               >;
+       };
+
+       pinctrl_ecspi3: ecspi3grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK    0x100b1
+                       MX6UL_PAD_UART2_RTS_B__ECSPI3_MISO      0x100b1
+                       MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI      0x100b1
+                       MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20     0x10b0
+               >;
+       };
+
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA20__ECSPI1_SCLK       0x100b1
+                       MX6UL_PAD_LCD_DATA23__ECSPI1_MISO       0x100b1
+                       MX6UL_PAD_LCD_DATA22__ECSPI1_MOSI       0x100b1
+               >;
+       };
+
+       pinctrl_ecspi1_cs: ecspi1csgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA21__GPIO3_IO26        0x10b0
+                       MX6UL_PAD_LCD_DATA05__GPIO3_IO10        0x10b0
+                       MX6UL_PAD_LCD_DATA06__GPIO3_IO11        0x10b0
+               >;
+       };
+
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b010
+                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b010
+                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b010
+                       MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b010
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX      0x0b0b0
+                       MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX      0x0b0b0
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA10__FLEXCAN2_TX       0x0b0b0
+                       MX6UL_PAD_LCD_DATA11__FLEXCAN2_RX       0x0b0b0
+               >;
+       };
+
+       princtrl_flexcan2_en: flexcan2engrp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x17059
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO00__I2C2_SCL  0xb0
+                       MX6UL_PAD_GPIO1_IO01__I2C2_SDA  0xb0
+               >;
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO00__GPIO1_IO00        0xb0
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA01__I2C3_SCL  0xb0
+                       MX6UL_PAD_LCD_DATA00__I2C3_SDA  0xb0
+               >;
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA01__GPIO3_IO06        0xb0
+                       MX6UL_PAD_LCD_DATA00__GPIO3_IO05        0xb0
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA03__I2C4_SCL  0xb0
+                       MX6UL_PAD_LCD_DATA02__I2C4_SDA  0xb0
+               >;
+       };
+
+       pinctrl_i2c4_gpio: i2c4gpiogrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA03__GPIO3_IO08        0xb0
+                       MX6UL_PAD_LCD_DATA02__GPIO3_IO07        0xb0
+               >;
+       };
+
+       pinctrl_pwm3: pwm3grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO04__PWM3_OUT  0x0b0b0
+               >;
+       };
+
+       pinctrl_pwm6: pwm6grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TDI__PWM6_OUT    0x0b0b0
+               >;
+       };
+
+       pinctrl_pwm7: pwm7grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TCK__PWM7_OUT    0x0b0b0
+               >;
+       };
+
+       pinctrl_pwm8: pwm8grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TRST_B__PWM8_OUT 0x0b0b0
+               >;
+       };
+
+       pinctrl_s25fl064_hold: s25fl064holdgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA12__GPIO3_IO17        0x100b1
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK        0x17088
+                       MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC        0x17088
+                       MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA     0x11088
+                       MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA        0x11088
+                       MX6UL_PAD_JTAG_TMS__SAI2_MCLK           0x17088
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__UART4_DCE_TX         0x1b0b1
+                       MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX      0x1b0b1
+                       MX6UL_PAD_LCD_HSYNC__GPIO3_IO02 0x1b0b1
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart7: uart7grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA16__UART7_DCE_TX      0x1b0b1
+                       MX6UL_PAD_LCD_DATA17__UART7_DCE_RX      0x1b0b1
+               >;
+       };
+
+       pinctrl_usb_otg1: usbotg1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_DATA06__GPIO4_IO27        0x80
+               >;
+       };
+
+       pinctrl_usbotg1pwr: usbotg1pwrgrp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_DATA07__GPIO4_IO28        0x17059
+               >;
+       };
+
+       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
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1100mhzgrp {
+               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: usdhc1200mhzgrp {
+               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_user_leds: userledsgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x79
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts b/arch/arm/boot/dts/imx6ull-tqma6ull2-mba6ulx.dts
new file mode 100644 (file)
index 0000000..e593b70
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6ull-tqma6ull2.dtsi"
+#include "mba6ulx.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6ULL2 SoM on MBa6ULx board";
+       compatible = "tq,imx6ull-tqma6ull2-mba6ulx", "tq,imx6ull-tqma6ull2", "fsl,imx6ull";
+};
diff --git a/arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi b/arch/arm/boot/dts/imx6ull-tqma6ull2.dtsi
new file mode 100644 (file)
index 0000000..326e6da
--- /dev/null
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+#include "imx6ull.dtsi"
+#include "imx6ul-tqma6ul-common.dtsi"
+#include "imx6ul-tqma6ulx-common.dtsi"
+
+/ {
+       model = "TQ-Systems TQMa6ULL2 SoM";
+       compatible = "tq,imx6ull-tqma6ull2", "fsl,imx6ull";
+};
+
+&usdhc2 {
+       fsl,tuning-step= <6>;
+       /* Errata ERR010450 Workaround */
+       max-frequency = <99000000>;
+       assigned-clocks = <&clks IMX6UL_CLK_USDHC2_SEL>, <&clks IMX6UL_CLK_USDHC2>;
+       assigned-clock-parents = <&clks IMX6UL_CLK_PLL2_PFD2>;
+       assigned-clock-rates = <0>, <198000000>;
+};
+
+&iomuxc {
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x00017031
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x00017039
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x00017039
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x00017039
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x00017039
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x00017039
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x00017039
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x00017039
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x00017039
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x00017039
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170f1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170f1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts b/arch/arm/boot/dts/imx6ull-tqma6ull2l-mba6ulx.dts
new file mode 100644 (file)
index 0000000..33437aa
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/dts-v1/;
+
+#include "imx6ull-tqma6ull2l.dtsi"
+#include "mba6ulx.dtsi"
+
+/ {
+       model = "TQ Systems TQMa6ULL2L SoM on MBa6ULx board";
+       compatible = "tq,imx6ull-tqma6ull2l-mba6ulx", "tq,imx6ull-tqma6ull2l", "fsl,imx6ull";
+};
diff --git a/arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi b/arch/arm/boot/dts/imx6ull-tqma6ull2l.dtsi
new file mode 100644 (file)
index 0000000..8e4d5cd
--- /dev/null
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+#include "imx6ull.dtsi"
+#include "imx6ul-tqma6ul-common.dtsi"
+#include "imx6ul-tqma6ulxl-common.dtsi"
+
+/ {
+       model = "TQ Systems TQMa6ULL2L SoM";
+       compatible = "tq,imx6ull-tqma6ull2l", "fsl,imx6ull";
+};
+
+&usdhc2 {
+       fsl,tuning-step= <6>;
+       /* Errata ERR010450 Workaround */
+       max-frequency = <99000000>;
+       assigned-clocks = <&clks IMX6UL_CLK_USDHC2_SEL>, <&clks IMX6UL_CLK_USDHC2>;
+       assigned-clock-parents = <&clks IMX6UL_CLK_PLL2_PFD2>;
+       assigned-clock-rates = <0>, <198000000>;
+};
+
+&iomuxc {
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x00017031
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x00017039
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x00017039
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x00017039
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x00017039
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x00017039
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x00017039
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x00017039
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x00017039
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x00017039
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170f1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x000170f1
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x000170f1
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x000170f1
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x000170f1
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x000170f1
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x000170f1
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x000170f1
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x000170f1
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x000170f1
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x000170f1
+                       /* rst */
+                       MX6UL_PAD_NAND_ALE__GPIO4_IO10          0x0001b051
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/imx7d-smegw01.dts b/arch/arm/boot/dts/imx7d-smegw01.dts
new file mode 100644 (file)
index 0000000..c6b3206
--- /dev/null
@@ -0,0 +1,469 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+//
+// Copyright (C) 2020 PHYTEC Messtechnik GmbH
+// Author: Jens Lang  <J.Lang@phytec.de>
+// Copyright (C) 2021 Fabio Estevam <festevam@denx.de>
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include "imx7d.dtsi"
+
+/ {
+       model = "Storopack SMEGW01 board";
+       compatible = "storopack,imx7d-smegw01", "fsl,imx7d";
+
+       aliases {
+               mmc0 = &usdhc1;
+               mmc1 = &usdhc3;
+               mmc2 = &usdhc2;
+               rtc0 = &i2c_rtc;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+
+       reg_lte_on: regulator-lte-on {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lte_on>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "lte_on";
+               gpio = <&gpio7 12 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_lte_nreset: regulator-lte-nreset {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_lte_nreset>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "LTE_nReset";
+               gpio = <&gpio6 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_wifi: regulator-wifi {
+               compatible = "regulator-fixed";
+               gpio = <&gpio2 30 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wifi>;
+               regulator-name = "wifi_reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_wlan_rfkill: regulator-wlan-rfkill {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-2 = <&pinctrl_rfkill>;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "wlan_rfkill";
+               gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
+       reg_usbotg_vbus: regulator-usbotg-vbus {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbotg1_pwr_gpio>;
+               regulator-name = "usb_otg_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio1 05 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       cs-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       sram@0 {
+               compatible = "microchip,48l640";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <16000000>;
+       };
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       assigned-clocks = <&clks IMX7D_ENET1_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET1_TIME_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <100000000>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio: mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@1 {
+                       compatible = "ethernet-phy-id0022.1622",
+                                    "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
+               };
+
+               ethphy1: ethernet-phy@2 {
+                       compatible = "ethernet-phy-id0022.1622",
+                                    "ethernet-phy-ieee802.3-c22";
+                       reg = <2>;
+               };
+       };
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       assigned-clocks = <&clks IMX7D_ENET2_TIME_ROOT_SRC>,
+                         <&clks IMX7D_ENET2_TIME_ROOT_CLK>;
+       assigned-clock-parents = <&clks IMX7D_PLL_ENET_MAIN_100M_CLK>;
+       assigned-clock-rates = <0>, <100000000>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy1>;
+       fsl,magic-packet;
+       status = "okay";
+};
+
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 =<&pinctrl_i2c2>;
+       clock-frequency = <100000>;
+       status = "okay";
+
+       i2c_rtc: rtc@52 {
+               compatible = "microcrystal,rv3028";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc_int>;
+               reg = <0x52>;
+               interrupt-parent = <&gpio2>;
+               interrupts = <15 IRQ_TYPE_LEVEL_LOW>;
+       };
+};
+
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       status = "okay";
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg1_lpsr>;
+       dr_mode = "otg";
+       vbus-supply = <&reg_usbotg_vbus>;
+       status = "okay";
+};
+
+&usbotg2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg2>;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       cd-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       enable-sdio-wakeup;
+       keep-power-in-suspend;
+       status = "okay";
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       bus-width = <4>;
+       non-removable;
+       cap-sd-highspeed;
+       sd-uhs-ddr50;
+       mmc-ddr-1_8v;
+       vmmc-supply = <&reg_wifi>;
+       enable-sdio-wakeup;
+       status = "okay";
+};
+
+&usdhc3 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       assigned-clocks = <&clks IMX7D_USDHC3_ROOT_CLK>;
+       assigned-clock-rates = <400000000>;
+       max-frequency = <200000000>;
+       bus-width = <8>;
+       fsl,tuning-step = <1>;
+       non-removable;
+       cap-mmc-highspeed;
+       cap-mmc-hw-reset;
+       mmc-hs200-1_8v;
+       mmc-ddr-1_8v;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX7D_PAD_ECSPI1_SS0__GPIO4_IO19 0x04
+                       MX7D_PAD_ECSPI1_SCLK__ECSPI1_SCLK       0x04
+                       MX7D_PAD_ECSPI1_MOSI__ECSPI1_MOSI       0x04
+                       MX7D_PAD_ECSPI1_MISO__ECSPI1_MISO       0x04
+               >;
+       };
+
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_RGMII_RX_CTL__ENET1_RGMII_RX_CTL 0x5
+                       MX7D_PAD_ENET1_RGMII_RD0__ENET1_RGMII_RD0       0x5
+                       MX7D_PAD_ENET1_RGMII_RD1__ENET1_RGMII_RD1       0x5
+                       MX7D_PAD_ENET1_RGMII_RD2__ENET1_RGMII_RD2       0x5
+                       MX7D_PAD_ENET1_RGMII_RD3__ENET1_RGMII_RD3       0x5
+                       MX7D_PAD_ENET1_RGMII_RXC__ENET1_RGMII_RXC       0x5
+                       MX7D_PAD_ENET1_RGMII_TX_CTL__ENET1_RGMII_TX_CTL 0x5
+                       MX7D_PAD_ENET1_RGMII_TD0__ENET1_RGMII_TD0       0x5
+                       MX7D_PAD_ENET1_RGMII_TD1__ENET1_RGMII_TD1       0x5
+                       MX7D_PAD_ENET1_RGMII_TD2__ENET1_RGMII_TD2       0x5
+                       MX7D_PAD_ENET1_RGMII_TD3__ENET1_RGMII_TD3       0x5
+                       MX7D_PAD_ENET1_RGMII_TXC__ENET1_RGMII_TXC       0x5
+                       MX7D_PAD_GPIO1_IO10__ENET1_MDIO         0x7
+                       MX7D_PAD_GPIO1_IO11__ENET1_MDC          0x7
+               >;
+       };
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_SDCE0__ENET2_RGMII_RX_CTL 0x5
+                       MX7D_PAD_EPDC_SDCE1__ENET2_RGMII_RXC    0x5
+                       MX7D_PAD_EPDC_SDCLK__ENET2_RGMII_RD0    0x5
+                       MX7D_PAD_EPDC_SDLE__ENET2_RGMII_RD1     0x5
+                       MX7D_PAD_EPDC_SDOE__ENET2_RGMII_RD2     0x5
+                       MX7D_PAD_EPDC_SDSHR__ENET2_RGMII_RD3    0x5
+                       MX7D_PAD_EPDC_SDCE2__ENET2_RGMII_TD0    0x5
+                       MX7D_PAD_EPDC_SDCE3__ENET2_RGMII_TD1    0x5
+                       MX7D_PAD_EPDC_GDCLK__ENET2_RGMII_TD2    0x5
+                       MX7D_PAD_EPDC_GDOE__ENET2_RGMII_TD3     0x5
+                       MX7D_PAD_EPDC_GDRL__ENET2_RGMII_TX_CTL 0x5
+                       MX7D_PAD_EPDC_GDSP__ENET2_RGMII_TXC     0x5
+                       MX7D_PAD_GPIO1_IO09__GPIO1_IO9  0x08
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX7D_PAD_I2C2_SCL__I2C2_SCL             0x40000004
+                       MX7D_PAD_I2C2_SDA__I2C2_SDA             0x40000004
+               >;
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO12__FLEXCAN1_RX        0x0b0b0
+                       MX7D_PAD_GPIO1_IO13__FLEXCAN1_TX        0x0b0b0
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX7D_PAD_GPIO1_IO14__FLEXCAN2_RX        0x0b0b0
+                       MX7D_PAD_GPIO1_IO15__FLEXCAN2_TX        0x0b0b0
+               >;
+       };
+
+       pinctrl_lte_on: lteongrp {
+               fsl,pins = <
+                       MX7D_PAD_ENET1_TX_CLK__GPIO7_IO12       0x17059
+               >;
+       };
+
+       pinctrl_lte_nreset: ltenresetgrp {
+               fsl,pins = <
+                       MX7D_PAD_SAI2_RX_DATA__GPIO6_IO21       0x17059
+               >;
+       };
+
+       pinctrl_rfkill: rfkillrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA11__GPIO2_IO11        0x17059
+               >;
+       };
+
+       pinctrl_rtc_int: rtcintgrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_DATA15__GPIO2_IO15        0x17059
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX7D_PAD_UART1_TX_DATA__UART1_DCE_TX    0x74
+                       MX7D_PAD_UART1_RX_DATA__UART1_DCE_RX    0x7c
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX7D_PAD_UART3_TX_DATA__UART3_DCE_TX    0x7c
+                       MX7D_PAD_UART3_RX_DATA__UART3_DCE_RX    0x74
+               >;
+       };
+
+       pinctrl_usbotg1_lpsr: usbotg1 {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO04__USB_OTG1_OC   0x04
+               >;
+       };
+
+       pinctrl_usbotg1_pwr: usbotg1-pwr {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO05__USB_OTG1_PWR  0x04
+               >;
+       };
+
+       pinctrl_usbotg1_pwr_gpio: usbotg1-pwr-gpio {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO05__GPIO1_IO5     0x04
+               >;
+       };
+
+       pinctrl_usbotg2: usbotg2grp {
+               fsl,pins = <
+                       MX7D_PAD_UART3_RTS_B__USB_OTG2_OC       0x04
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX7D_PAD_SD1_CD_B__GPIO5_IO0            0x59
+                       MX7D_PAD_SD1_CMD__SD1_CMD               0x59
+                       MX7D_PAD_SD1_CLK__SD1_CLK               0x19
+                       MX7D_PAD_SD1_DATA0__SD1_DATA0           0x59
+                       MX7D_PAD_SD1_DATA1__SD1_DATA1           0x59
+                       MX7D_PAD_SD1_DATA2__SD1_DATA2           0x59
+                       MX7D_PAD_SD1_DATA3__SD1_DATA3           0x59
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX7D_PAD_SD2_CLK__SD2_CLK               0x19
+                       MX7D_PAD_SD2_CMD__SD2_CMD               0x59
+                       MX7D_PAD_SD2_DATA0__SD2_DATA0           0x59
+                       MX7D_PAD_SD2_DATA1__SD2_DATA1           0x59
+                       MX7D_PAD_SD2_DATA2__SD2_DATA2           0x59
+                       MX7D_PAD_SD2_DATA3__SD2_DATA3           0x59
+                       MX7D_PAD_SD2_CD_B__SD2_CD_B             0x08
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5d
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1d
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5d
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5d
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5d
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5d
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5d
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5d
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5d
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5d
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1d
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5e
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x1e
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5e
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5e
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5e
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5e
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5e
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5e
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5e
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5e
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1e
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX7D_PAD_SD3_CMD__SD3_CMD               0x5f
+                       MX7D_PAD_SD3_CLK__SD3_CLK               0x0f
+                       MX7D_PAD_SD3_DATA0__SD3_DATA0           0x5f
+                       MX7D_PAD_SD3_DATA1__SD3_DATA1           0x5f
+                       MX7D_PAD_SD3_DATA2__SD3_DATA2           0x5f
+                       MX7D_PAD_SD3_DATA3__SD3_DATA3           0x5f
+                       MX7D_PAD_SD3_DATA4__SD3_DATA4           0x5f
+                       MX7D_PAD_SD3_DATA5__SD3_DATA5           0x5f
+                       MX7D_PAD_SD3_DATA6__SD3_DATA6           0x5f
+                       MX7D_PAD_SD3_DATA7__SD3_DATA7           0x5f
+                       MX7D_PAD_SD3_STROBE__SD3_STROBE 0x1f
+               >;
+       };
+
+       pinctrl_wifi: wifigrp {
+               fsl,pins = <
+                       MX7D_PAD_EPDC_PWR_COM__GPIO2_IO30       0x04
+                       MX7D_PAD_SD2_RESET_B__GPIO5_IO11        0x04
+               >;
+       };
+};
+
+&iomuxc_lpsr {
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX7D_PAD_LPSR_GPIO1_IO00__WDOG1_WDOG_B 0x74
+               >;
+       };
+};
index 5af6d58..008e3da 100644 (file)
                                status = "disabled";
                        };
 
-                       iomuxc_lpsr: iomuxc-lpsr@302c0000 {
+                       iomuxc_lpsr: pinctrl@302c0000 {
                                compatible = "fsl,imx7d-iomuxc-lpsr";
                                reg = <0x302c0000 0x10000>;
                                fsl,input-sel = <&iomuxc>;
diff --git a/arch/arm/boot/dts/imxrt1050-evk.dts b/arch/arm/boot/dts/imxrt1050-evk.dts
new file mode 100644 (file)
index 0000000..6a9c10d
--- /dev/null
@@ -0,0 +1,72 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2019
+ * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com>
+ */
+
+/dts-v1/;
+#include "imxrt1050.dtsi"
+#include "imxrt1050-pinfunc.h"
+
+/ {
+       model = "NXP IMXRT1050-evk board";
+       compatible = "fsl,imxrt1050-evk", "fsl,imxrt1050";
+
+       chosen {
+               stdout-path = &lpuart1;
+       };
+
+       aliases {
+               gpio0 = &gpio1;
+               gpio1 = &gpio2;
+               gpio2 = &gpio3;
+               gpio3 = &gpio4;
+               gpio4 = &gpio5;
+               mmc0 = &usdhc1;
+               serial0 = &lpuart1;
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x2000000>;
+       };
+};
+
+&lpuart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart1>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl_lpuart1: lpuart1grp {
+               fsl,pins = <
+                       MXRT1050_IOMUXC_GPIO_AD_B0_12_LPUART1_TXD       0xf1
+                       MXRT1050_IOMUXC_GPIO_AD_B0_13_LPUART1_RXD       0xf1
+               >;
+       };
+
+       pinctrl_usdhc0: usdhc0grp {
+               fsl,pins = <
+                       MXRT1050_IOMUXC_GPIO_B1_12_USDHC1_CD_B          0x1B000
+                       MXRT1050_IOMUXC_GPIO_B1_14_USDHC1_VSELECT       0xB069
+                       MXRT1050_IOMUXC_GPIO_SD_B0_00_USDHC1_CMD        0x17061
+                       MXRT1050_IOMUXC_GPIO_SD_B0_01_USDHC1_CLK        0x17061
+                       MXRT1050_IOMUXC_GPIO_SD_B0_05_USDHC1_DATA3      0x17061
+                       MXRT1050_IOMUXC_GPIO_SD_B0_04_USDHC1_DATA2      0x17061
+                       MXRT1050_IOMUXC_GPIO_SD_B0_03_USDHC1_DATA1      0x17061
+                       MXRT1050_IOMUXC_GPIO_SD_B0_02_USDHC1_DATA0      0x17061
+               >;
+       };
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc0>;
+       pinctrl-1 = <&pinctrl_usdhc0>;
+       pinctrl-2 = <&pinctrl_usdhc0>;
+       pinctrl-3 = <&pinctrl_usdhc0>;
+       cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/imxrt1050.dtsi b/arch/arm/boot/dts/imxrt1050.dtsi
new file mode 100644 (file)
index 0000000..77b911b
--- /dev/null
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2019
+ * Author(s): Giulio Benetti <giulio.benetti@benettiengineering.com>
+ */
+
+#include "armv7-m.dtsi"
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/imxrt1050-clock.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       clocks {
+               osc: osc {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <24000000>;
+               };
+
+               osc3M: osc3M {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <3000000>;
+               };
+       };
+
+       soc {
+               lpuart1: serial@40184000 {
+                       compatible = "fsl,imxrt1050-lpuart", "fsl,imx7ulp-lpuart";
+                       reg = <0x40184000 0x4000>;
+                       interrupts = <20>;
+                       clocks = <&clks IMXRT1050_CLK_LPUART1>;
+                       clock-names = "ipg";
+                       status = "disabled";
+               };
+
+               iomuxc: pinctrl@401f8000 {
+                       compatible = "fsl,imxrt1050-iomuxc";
+                       reg = <0x401f8000 0x4000>;
+                       fsl,mux_mask = <0x7>;
+               };
+
+               anatop: anatop@400d8000 {
+                       compatible = "fsl,imxrt-anatop";
+                       reg = <0x400d8000 0x4000>;
+               };
+
+               clks: clock-controller@400fc000 {
+                       compatible = "fsl,imxrt1050-ccm";
+                       reg = <0x400fc000 0x4000>;
+                       interrupts = <95>, <96>;
+                       clocks = <&osc>;
+                       clock-names = "osc";
+                       #clock-cells = <1>;
+                       assigned-clocks = <&clks IMXRT1050_CLK_PLL1_BYPASS>,
+                               <&clks IMXRT1050_CLK_PLL1_BYPASS>,
+                               <&clks IMXRT1050_CLK_PLL2_BYPASS>,
+                               <&clks IMXRT1050_CLK_PLL3_BYPASS>,
+                               <&clks IMXRT1050_CLK_PLL3_PFD1_664_62M>,
+                               <&clks IMXRT1050_CLK_PLL2_PFD2_396M>;
+                       assigned-clock-parents = <&clks IMXRT1050_CLK_PLL1_REF_SEL>,
+                               <&clks IMXRT1050_CLK_PLL1_ARM>,
+                               <&clks IMXRT1050_CLK_PLL2_SYS>,
+                               <&clks IMXRT1050_CLK_PLL3_USB_OTG>,
+                               <&clks IMXRT1050_CLK_PLL3_USB_OTG>,
+                               <&clks IMXRT1050_CLK_PLL2_SYS>;
+               };
+
+               edma1: dma-controller@400e8000 {
+                       #dma-cells = <2>;
+                       compatible = "fsl,imx7ulp-edma";
+                       reg = <0x400e8000 0x4000>,
+                               <0x400ec000 0x4000>;
+                       dma-channels = <32>;
+                       interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>,
+                               <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
+                       clock-names = "dma", "dmamux0";
+                       clocks = <&clks IMXRT1050_CLK_DMA>,
+                                <&clks IMXRT1050_CLK_DMA_MUX>;
+               };
+
+               usdhc1: mmc@402c0000 {
+                       compatible ="fsl,imxrt1050-usdhc", "fsl,imx6sl-usdhc";
+                       reg = <0x402c0000 0x4000>;
+                       interrupts = <110>;
+                       clocks = <&clks IMXRT1050_CLK_IPG_PDOF>,
+                               <&clks IMXRT1050_CLK_OSC>,
+                               <&clks IMXRT1050_CLK_USDHC1>;
+                       clock-names = "ipg", "ahb", "per";
+                       bus-width = <4>;
+                       fsl,wp-controller;
+                       no-1-8-v;
+                       max-frequency = <4000000>;
+                       fsl,tuning-start-tap = <20>;
+                       fsl,tuning-step= <2>;
+                       status = "disabled";
+               };
+
+               gpio1: gpio@401b8000 {
+                       compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
+                       reg = <0x401b8000 0x4000>;
+                       interrupts = <80>, <81>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio2: gpio@401bc000 {
+                       compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
+                       reg = <0x401bc000 0x4000>;
+                       interrupts = <82>, <83>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio3: gpio@401c0000 {
+                       compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
+                       reg = <0x401c0000 0x4000>;
+                       interrupts = <84>, <85>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio4: gpio@401c4000 {
+                       compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
+                       reg = <0x401c4000 0x4000>;
+                       interrupts = <86>, <87>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio5: gpio@400c0000 {
+                       compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
+                       reg = <0x400c0000 0x4000>;
+                       interrupts = <88>, <89>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpt: timer@401ec000 {
+                       compatible = "fsl,imxrt1050-gpt", "fsl,imx6dl-gpt", "fsl,imx6sl-gpt";
+                       reg = <0x401ec000 0x4000>;
+                       interrupts = <100>;
+                       clocks = <&osc3M>;
+                       clock-names = "per";
+               };
+       };
+};
index 66fec5f..5d6d074 100644 (file)
 };
 
 &spi0 {
-       nor_flash: n25q128a11@0 {
+       nor_flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               compatible = "Micron,n25q128a11";
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
                spi-max-frequency = <54000000>;
                m25p,fast-read;
                reg = <0>;
index d800f26..88be868 100644 (file)
        pinctrl-0 = <&qspi_pins>;
        cdns,rclk-en;
 
-       flash0: m25p80@0 {
+       flash0: flash@0 {
                compatible = "s25fl512s", "jedec,spi-nor";
                reg = <0>;
                spi-tx-bus-width = <1>;
index 2a2d38c..bd84d7f 100644 (file)
        cdns,rclk-en;
        status = "okay";
 
-       flash0: m25p80@0 {
+       flash0: flash@0 {
                compatible = "s25fl256s1", "jedec,spi-nor";
                reg = <0>;
                spi-tx-bus-width = <1>;
index ad4e22a..4a91f5d 100644 (file)
 };
 
 &spi0 {
-       nor_flash: n25q128a11@0 {
+       nor_flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               compatible = "Micron,n25q128a11";
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
                spi-max-frequency = <54000000>;
                m25p,fast-read;
                reg = <0>;
index e200533..1c880cf 100644 (file)
 };
 
 &spi0 {
-       nor_flash: n25q128a11@0 {
+       nor_flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
-               compatible = "Micron,n25q128a11";
+               compatible = "micron,n25q128a11", "jedec,spi-nor";
                spi-max-frequency = <54000000>;
                m25p,fast-read;
                reg = <0>;
index b3ad3f6..c323006 100644 (file)
@@ -78,7 +78,7 @@
 
                spi@10600 {
                        status = "okay";
-                       m25p80@0 {
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                                compatible = "mxicy,mx25l12805d", "jedec,spi-nor";
index 217bd37..8f6c387 100644 (file)
                spi@10600 {
                        status = "okay";
 
-                       m25p80@0 {
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                                compatible = "st,m25p80", "jedec,spi-nor";
diff --git a/arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts b/arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-6g-2gs.dts
new file mode 100644 (file)
index 0000000..0f555eb
--- /dev/null
@@ -0,0 +1,94 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for the Kontron KSwitch D10 MMT 6G-2GS
+ */
+
+/dts-v1/;
+#include "lan966x-kontron-kswitch-d10-mmt.dtsi"
+
+/ {
+       model = "Kontron KSwitch D10 MMT 6G-2GS";
+       compatible = "kontron,kswitch-d10-mmt-6g-2gs", "kontron,s1921",
+                    "microchip,lan9668", "microchip,lan966";
+
+       aliases {
+               i2c0 = &i2c4;
+               i2c1 = &i2c1;
+       };
+
+       sfp0: sfp0 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c4>;
+               los-gpios = <&sgpio_in 1 0 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in 1 1 GPIO_ACTIVE_LOW>;
+               maximum-power-milliwatt = <2500>;
+               tx-disable-gpios = <&sgpio_out 3 0 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in 0 2 GPIO_ACTIVE_HIGH>;
+               rate-select0-gpios = <&sgpio_out 2 0 GPIO_ACTIVE_HIGH>;
+               rate-select1-gpios = <&sgpio_out 2 1 GPIO_ACTIVE_HIGH>;
+       };
+
+       sfp1: sfp1 {
+               compatible = "sff,sfp";
+               i2c-bus = <&i2c1>;
+               los-gpios = <&sgpio_in 1 2 GPIO_ACTIVE_HIGH>;
+               mod-def0-gpios = <&sgpio_in 1 3 GPIO_ACTIVE_LOW>;
+               maximum-power-milliwatt = <2500>;
+               tx-disable-gpios = <&sgpio_out 3 1 GPIO_ACTIVE_LOW>;
+               tx-fault-gpios = <&sgpio_in 0 3 GPIO_ACTIVE_HIGH>;
+               rate-select0-gpios = <&sgpio_out 2 2 GPIO_ACTIVE_HIGH>;
+               rate-select1-gpios = <&sgpio_out 2 3 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&flx1 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+       status = "okay";
+
+       i2c1: i2c@600 {
+               pinctrl-0 = <&fc1_c_pins>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+};
+
+&flx4 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
+       status = "okay";
+
+       i2c4: i2c@600 {
+               pinctrl-0 = <&fc4_b_pins>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+};
+
+&gpio {
+       fc1_c_pins: fc1-c-i2c-pins {
+               /* SCL, SDA */
+               pins = "GPIO_47", "GPIO_48";
+               function = "fc1_c";
+       };
+
+       fc4_b_pins: fc4-b-i2c-pins {
+               /* SCL, SDA */
+               pins = "GPIO_57", "GPIO_58";
+               function = "fc4_b";
+       };
+};
+
+&port2 {
+       phys = <&serdes 2 SERDES6G(0)>;
+       sfp = <&sfp0>;
+       managed = "in-band-status";
+       phy-mode = "sgmii";
+       status = "okay";
+};
+
+&port3 {
+       phys = <&serdes 3 SERDES6G(1)>;
+       sfp = <&sfp1>;
+       managed = "in-band-status";
+       phy-mode = "sgmii";
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dts b/arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt-8g.dts
new file mode 100644 (file)
index 0000000..5feef9a
--- /dev/null
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Device Tree file for the Kontron KSwitch D10 MMT 8G
+ */
+
+/dts-v1/;
+#include "lan966x-kontron-kswitch-d10-mmt.dtsi"
+
+/ {
+       model = "Kontron KSwitch D10 MMT 8G";
+       compatible = "kontron,kswitch-d10-mmt-8g", "kontron,s1921",
+                    "microchip,lan9668", "microchip,lan966";
+};
+
+&mdio0 {
+       phy2: ethernet-phy@3 {
+               reg = <3>;
+       };
+
+       phy3: ethernet-phy@4 {
+               reg = <4>;
+       };
+};
+
+&port2 {
+       phys = <&serdes 2 SERDES6G(0)>;
+       phy-handle = <&phy2>;
+       phy-mode = "sgmii";
+       managed = "in-band-status";
+       status = "okay";
+};
+
+&port3 {
+       phys = <&serdes 3 SERDES6G(1)>;
+       phy-handle = <&phy3>;
+       phy-mode = "sgmii";
+       managed = "in-band-status";
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi b/arch/arm/boot/dts/lan966x-kontron-kswitch-d10-mmt.dtsi
new file mode 100644 (file)
index 0000000..4cab1b3
--- /dev/null
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Common part of the device tree for the Kontron KSwitch D10 MMT
+ */
+
+/dts-v1/;
+#include "lan966x.dtsi"
+#include "dt-bindings/phy/phy-lan966x-serdes.h"
+
+/ {
+       aliases {
+               serial0 = &usart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-restart {
+               compatible = "gpio-restart";
+               gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
+               priority = <200>;
+       };
+};
+
+&flx0 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
+       status = "okay";
+
+       usart0: serial@200 {
+               pinctrl-0 = <&usart0_pins>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+};
+
+&flx3 {
+       atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
+       status = "okay";
+
+       spi3: spi@400 {
+               pinctrl-0 = <&fc3_b_pins>;
+               pinctrl-names = "default";
+               status = "okay";
+               cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&gpio {
+       fc3_b_pins: fc3-b-pins {
+               /* SCK, MISO, MOSI */
+               pins = "GPIO_51", "GPIO_52", "GPIO_53";
+               function = "fc3_b";
+       };
+
+       miim_c_pins: miim-c-pins {
+               /* MDC, MDIO */
+               pins = "GPIO_59", "GPIO_60";
+               function = "miim_c";
+       };
+
+       sgpio_a_pins: sgpio-a-pins {
+               /* SCK, D0, D1 */
+               pins = "GPIO_32", "GPIO_33", "GPIO_34";
+               function = "sgpio_a";
+       };
+
+       sgpio_b_pins: sgpio-b-pins {
+               /* LD */
+               pins = "GPIO_64";
+               function = "sgpio_b";
+       };
+
+       usart0_pins: usart0-pins {
+               /* RXD, TXD */
+               pins = "GPIO_25", "GPIO_26";
+               function = "fc0_b";
+       };
+};
+
+&mdio0 {
+       pinctrl-0 = <&miim_c_pins>;
+       pinctrl-names = "default";
+       reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
+       clock-frequency = <2500000>;
+       status = "okay";
+
+       phy4: ethernet-phy@5 {
+               reg = <5>;
+               coma-mode-gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+       };
+
+       phy5: ethernet-phy@6 {
+               reg = <6>;
+               coma-mode-gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+       };
+
+       phy6: ethernet-phy@7 {
+               reg = <7>;
+               coma-mode-gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+       };
+
+       phy7: ethernet-phy@8 {
+               reg = <8>;
+               coma-mode-gpios = <&gpio 37 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&mdio1 {
+       status = "okay";
+};
+
+&phy0 {
+       status = "okay";
+};
+
+&phy1 {
+       status = "okay";
+};
+
+&port0 {
+       phys = <&serdes 0 CU(0)>;
+       phy-handle = <&phy0>;
+       phy-mode = "gmii";
+       status = "okay";
+};
+
+&port1 {
+       phys = <&serdes 1 CU(1)>;
+       phy-handle = <&phy1>;
+       phy-mode = "gmii";
+       status = "okay";
+};
+
+&port4 {
+       phys = <&serdes 4 SERDES6G(2)>;
+       phy-handle = <&phy4>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&port5 {
+       phys = <&serdes 5 SERDES6G(2)>;
+       phy-handle = <&phy5>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&port6 {
+       phys = <&serdes 6 SERDES6G(2)>;
+       phy-handle = <&phy6>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&port7 {
+       phys = <&serdes 7 SERDES6G(2)>;
+       phy-handle = <&phy7>;
+       phy-mode = "qsgmii";
+       status = "okay";
+};
+
+&serdes {
+       status = "okay";
+};
+
+&sgpio {
+       pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>;
+       pinctrl-names = "default";
+       bus-frequency = <8000000>;
+       /* arbitrary range because all GPIOs are in software mode */
+       microchip,sgpio-port-ranges = <0 11>;
+       status = "okay";
+
+       sgpio_in: gpio@0 {
+               ngpios = <128>;
+       };
+
+       sgpio_out: gpio@1 {
+               ngpios = <128>;
+       };
+};
+
+&switch {
+       status = "okay";
+};
+
+&watchdog {
+       status = "okay";
+};
index 3281af9..3c7e3a7 100644 (file)
@@ -35,7 +35,7 @@
                function = "fc3_b";
        };
 
-       can0_b_pins:  can0_b_pins {
+       can0_b_pins:  can0-b-pins {
                /* RX, TX */
                pins = "GPIO_35", "GPIO_36";
                function = "can0_b";
index 7d28696..3cb02ff 100644 (file)
                #size-cells = <1>;
                ranges;
 
+               switch: switch@e0000000 {
+                       compatible = "microchip,lan966x-switch";
+                       reg = <0xe0000000 0x0100000>,
+                             <0xe2000000 0x0800000>;
+                       reg-names = "cpu", "gcb";
+                       interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "xtr", "fdma", "ana", "ptp",
+                                         "ptp-ext";
+                       resets = <&reset 0>;
+                       reset-names = "switch";
+                       status = "disabled";
+
+                       ethernet-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port0: port@0 {
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+
+                               port1: port@1 {
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
+
+                               port2: port@2 {
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+
+                               port3: port@3 {
+                                       reg = <3>;
+                                       status = "disabled";
+                               };
+
+                               port4: port@4 {
+                                       reg = <4>;
+                                       status = "disabled";
+                               };
+
+                               port5: port@5 {
+                                       reg = <5>;
+                                       status = "disabled";
+                               };
+
+                               port6: port@6 {
+                                       reg = <6>;
+                                       status = "disabled";
+                               };
+
+                               port7: port@7 {
+                                       reg = <7>;
+                                       status = "disabled";
+                               };
+                       };
+               };
+
                flx0: flexcom@e0040000 {
                        compatible = "atmel,sama5d2-flexcom";
                        reg = <0xe0040000 0x100>;
                        #size-cells = <1>;
                        ranges = <0x0 0xe0040000 0x800>;
                        status = "disabled";
+
+                       usart0: serial@200 {
+                               compatible = "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(2)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "usart";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       spi0: spi@400 {
+                               compatible = "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(2)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "spi_clk";
+                               atmel,fifo-size = <32>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c0: i2c@600 {
+                               compatible = "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(2)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                flx1: flexcom@e0044000 {
                        #size-cells = <1>;
                        ranges = <0x0 0xe0044000 0x800>;
                        status = "disabled";
+
+                       usart1: serial@200 {
+                               compatible = "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(4)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "usart";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@400 {
+                               compatible = "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(4)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "spi_clk";
+                               atmel,fifo-size = <32>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@600 {
+                               compatible = "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(4)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                trng: rng@e0048000 {
                        compatible = "atmel,at91sam9g46-aes";
                        reg = <0xe004c000 0x100>;
                        interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dma0 AT91_XDMAC_DT_PERID(13)>,
-                              <&dma0 AT91_XDMAC_DT_PERID(12)>;
-                       dma-names = "rx", "tx";
+                       dmas = <&dma0 AT91_XDMAC_DT_PERID(12)>,
+                              <&dma0 AT91_XDMAC_DT_PERID(13)>;
+                       dma-names = "tx", "rx";
                        clocks = <&nic_clk>;
                        clock-names = "aes_clk";
                };
                        #size-cells = <1>;
                        ranges = <0x0 0xe0060000 0x800>;
                        status = "disabled";
+
+                       usart2: serial@200 {
+                               compatible = "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(6)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "usart";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       spi2: spi@400 {
+                               compatible = "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(6)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "spi_clk";
+                               atmel,fifo-size = <32>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@600 {
+                               compatible = "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(6)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                flx3: flexcom@e0064000 {
                                compatible = "atmel,at91sam9260-usart";
                                reg = <0x200 0x200>;
                                interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(8)>;
+                               dma-names = "tx", "rx";
                                clocks = <&nic_clk>;
                                clock-names = "usart";
                                atmel,fifo-size = <32>;
                                status = "disabled";
                        };
+
+                       spi3: spi@400 {
+                               compatible = "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(8)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "spi_clk";
+                               atmel,fifo-size = <32>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@600 {
+                               compatible = "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(8)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                dma0: dma-controller@e0068000 {
                        #size-cells = <1>;
                        ranges = <0x0 0xe0070000 0x800>;
                        status = "disabled";
+
+                       usart4: serial@200 {
+                               compatible = "atmel,at91sam9260-usart";
+                               reg = <0x200 0x200>;
+                               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(10)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "usart";
+                               atmel,fifo-size = <32>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@400 {
+                               compatible = "atmel,at91rm9200-spi";
+                               reg = <0x400 0x200>;
+                               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(10)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               clock-names = "spi_clk";
+                               atmel,fifo-size = <32>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@600 {
+                               compatible = "microchip,sam9x60-i2c";
+                               reg = <0x600 0x200>;
+                               interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
+                                      <&dma0 AT91_XDMAC_DT_PERID(10)>;
+                               dma-names = "tx", "rx";
+                               clocks = <&nic_clk>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                timer0: timer@e008c000 {
                        status = "disabled";
                };
 
+               cpu_ctrl: syscon@e00c0000 {
+                       compatible = "microchip,lan966x-cpu-syscon", "syscon";
+                       reg = <0xe00c0000 0x350>;
+               };
+
                can0: can@e081c000 {
                        compatible = "bosch,m_can";
                        reg = <0xe081c000 0xfc>, <0x00100000 0x4000>;
                        status = "disabled";
                };
 
+               reset: reset-controller@e200400c {
+                       compatible = "microchip,lan966x-switch-reset";
+                       reg = <0xe200400c 0x4>;
+                       reg-names = "gcb";
+                       #reset-cells = <1>;
+                       cpu-syscon = <&cpu_ctrl>;
+               };
+
                gpio: pinctrl@e2004064 {
                        compatible = "microchip,lan966x-pinctrl";
                        reg = <0xe2004064 0xb4>,
                            <0xe2010024 0x138>;
+                       resets = <&reset 0>;
+                       reset-names = "switch";
                        gpio-controller;
                        #gpio-cells = <2>;
                        gpio-ranges = <&gpio 0 0 78>;
                        #interrupt-cells = <2>;
                };
 
+               mdio0: mdio@e2004118 {
+                       compatible = "microchip,lan966x-miim";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xe2004118 0x24>;
+                       clocks = <&sys_clk>;
+                       status = "disabled";
+               };
+
+               mdio1: mdio@e200413c {
+                       compatible = "microchip,lan966x-miim";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0xe200413c 0x24>,
+                             <0xe2010020 0x4>;
+                       clocks = <&sys_clk>;
+                       status = "disabled";
+
+                       phy0: ethernet-phy@1 {
+                               reg = <1>;
+                               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+
+                       phy1: ethernet-phy@2 {
+                               reg = <2>;
+                               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                       };
+               };
+
+               sgpio: gpio@e2004190 {
+                       compatible = "microchip,sparx5-sgpio";
+                       reg = <0xe2004190 0x118>;
+                       clocks = <&sys_clk>;
+                       resets = <&reset 0>;
+                       reset-names = "switch";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       sgpio_in: gpio@0 {
+                               compatible = "microchip,sparx5-sgpio-bank";
+                               reg = <0>;
+                               gpio-controller;
+                               #gpio-cells = <3>;
+                               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <3>;
+                       };
+
+                       sgpio_out: gpio@1 {
+                               compatible = "microchip,sparx5-sgpio-bank";
+                               reg = <1>;
+                               gpio-controller;
+                               #gpio-cells = <3>;
+                       };
+               };
+
+               hwmon: hwmon@e2010180 {
+                       compatible = "microchip,lan9668-hwmon";
+                       reg = <0xe2010180 0xc>,
+                             <0xe20042a8 0xc>;
+                       reg-names = "pvt", "fan";
+                       clocks = <&sys_clk>;
+               };
+
+               serdes: serdes@e202c000 {
+                       compatible = "microchip,lan966x-serdes";
+                       reg = <0xe202c000 0x9c>,
+                             <0xe2004010 0x4>;
+                       #phy-cells = <2>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@e8c11000 {
                        compatible = "arm,gic-400", "arm,cortex-a7-gic";
                        #interrupt-cells = <3>;
index 55b619c..9ba0ea4 100644 (file)
@@ -27,6 +27,8 @@
 
        /* HS USB Host PHY on PORT 1 */
        hsusb2_phy: hsusb2_phy {
+               pinctrl-names = "default";
+               pinctrl-0 = <&hsusb2_reset_pin>;
                compatible = "usb-nop-xceiv";
                reset-gpios = <&gpio1 4 GPIO_ACTIVE_LOW>; /* gpio_4 */
                #phy-cells = <0>;
 };
 
 &usbhshost {
+       pinctrl-names = "default";
+       pinctrl-0 = <&hsusb2_pins>;
        port2-mode = "ehci-phy";
 };
 
        phys = <0 &hsusb2_phy>;
 };
 
-
 &omap3_pmx_core {
-       pinctrl-names = "default";
-       pinctrl-0 = <&hsusb2_pins>;
 
        mmc3_pins: pinmux_mm3_pins {
                pinctrl-single,pins = <
 };
 
 &omap3_pmx_wkup {
-       pinctrl-names = "default";
-       pinctrl-0 = <&hsusb2_reset_pin>;
+
        hsusb2_reset_pin: pinmux_hsusb1_reset_pin {
                pinctrl-single,pins = <
                        OMAP3_WKUP_IOPAD(0x2a0e, PIN_OUTPUT | MUX_MODE4)        /* sys_boot2.gpio_4 */
diff --git a/arch/arm/boot/dts/ls1021a-iot.dts b/arch/arm/boot/dts/ls1021a-iot.dts
new file mode 100644 (file)
index 0000000..66bcdaf
--- /dev/null
@@ -0,0 +1,227 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2021-2022 NXP
+ *
+ */
+
+/dts-v1/;
+#include "ls1021a.dtsi"
+
+/ {
+       model = "LS1021A-IOT Board";
+       compatible = "fsl,ls1021a-iot", "fsl,ls1021a";
+
+       sys_mclk: clock-mclk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <24576000>;
+       };
+
+       reg_3p3v: regulator-3V3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3P3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_2p5v: regulator-2V5 {
+               compatible = "regulator-fixed";
+               regulator-name = "2P5V";
+               regulator-min-microvolt = <2500000>;
+               regulator-max-microvolt = <2500000>;
+               regulator-always-on;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,widgets =
+                       "Microphone", "Microphone Jack",
+                       "Headphone", "Headphone Jack",
+                       "Speaker", "Speaker Ext",
+                       "Line", "Line In Jack";
+               simple-audio-card,routing =
+                       "MIC_IN", "Microphone Jack",
+                       "Microphone Jack", "Mic Bias",
+                       "LINE_IN", "Line In Jack",
+                       "Headphone Jack", "HP_OUT",
+                       "Speaker Ext", "LINE_OUT";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&sai2>;
+                       frame-master;
+                       bitclock-master;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&sgtl5000>;
+                       frame-master;
+                       bitclock-master;
+               };
+       };
+};
+
+&can0{
+       status = "disabled";
+};
+
+&can1{
+       status = "disabled";
+};
+
+&can2{
+       status = "disabled";
+};
+
+&can3{
+       status = "okay";
+};
+
+&dcu {
+       display = <&display>;
+       status = "okay";
+
+       display: display@0 {
+               bits-per-pixel = <24>;
+
+               display-timings {
+                       native-mode = <&timing0>;
+
+                       timing0: mode0 {
+                               clock-frequency = <25000000>;
+                               hactive = <640>;
+                               vactive = <480>;
+                               hback-porch = <80>;
+                               hfront-porch = <80>;
+                               vback-porch = <16>;
+                               vfront-porch = <16>;
+                               hsync-len = <12>;
+                               vsync-len = <2>;
+                               hsync-active = <1>;
+                               vsync-active = <1>;
+                       };
+               };
+       };
+};
+
+&enet0 {
+       tbi-handle = <&tbi1>;
+       phy-handle = <&phy1>;
+       phy-connection-type = "sgmii";
+       status = "okay";
+};
+
+&enet1 {
+       tbi-handle = <&tbi1>;
+       phy-handle = <&phy3>;
+       phy-connection-type = "sgmii";
+       status = "okay";
+};
+
+&enet2 {
+       fixed-link = <0 1 1000 0 0>;
+       phy-connection-type = "rgmii-id";
+       status = "okay";
+};
+
+&esdhc{
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       pca9555: gpio@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+       };
+
+       sgtl5000: audio-codec@2a {
+               #sound-dai-cells=<0x0>;
+               compatible = "fsl,sgtl5000";
+               reg = <0x2a>;
+               VDDA-supply = <&reg_3p3v>;
+               VDDIO-supply = <&reg_2p5v>;
+               clocks = <&sys_mclk>;
+       };
+
+       max1239: adc@35 {
+               compatible = "maxim,max1239";
+               reg = <0x35>;
+               #io-channel-cells = <1>;
+       };
+
+       ina2201: core-monitor@44 {
+               compatible = "ti,ina220";
+               reg = <0x44>;
+               shunt-resistor = <1000>;
+       };
+
+       ina2202: current-monitor@45 {
+               compatible = "ti,ina220";
+               reg = <0x45>;
+               shunt-resistor = <1000>;
+       };
+
+       lm75b: thermal-monitor@48 {
+               compatible = "national,lm75b";
+               reg = <0x48>;
+       };
+};
+
+&lpuart0 {
+       status = "okay";
+};
+
+&mdio0 {
+       phy0: ethernet-phy@0 {
+               reg = <0x0>;
+       };
+
+       phy1: ethernet-phy@1 {
+               reg = <0x1>;
+       };
+
+       phy2: ethernet-phy@2 {
+               reg = <0x2>;
+       };
+
+       phy3: ethernet-phy@3 {
+               reg = <0x3>;
+       };
+
+       tbi1: tbi-phy@1f {
+               reg = <0x1f>;
+               device_type = "tbi-phy";
+       };
+};
+
+&qspi {
+       num-cs = <2>;
+       status = "okay";
+
+       s25fl128s: flash@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <20000000>;
+               reg = <0>;
+       };
+};
+
+&sai2 {
+       status = "okay";
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
index 2e69d6e..6c88be2 100644 (file)
                        interrupts = <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
                };
 
-               ifc: ifc@1530000 {
-                       compatible = "fsl,ifc", "simple-bus";
+               ifc: memory-controller@1530000 {
+                       compatible = "fsl,ifc";
                        reg = <0x0 0x1530000 0x0 0x10000>;
                        interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                                        <3 0 &gic GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>,
                                        <4 0 &gic GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
                                        <5 0 &gic GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
-                               interrupt-map-mask = <0xffffffff 0x0>;
+                               interrupt-map-mask = <0x7 0x0>;
                        };
                };
 
diff --git a/arch/arm/boot/dts/mba6ulx.dtsi b/arch/arm/boot/dts/mba6ulx.dtsi
new file mode 100644 (file)
index 0000000..aac42df
--- /dev/null
@@ -0,0 +1,569 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Copyright 2018-2022 TQ-Systems GmbH
+ * Author: Markus Niebel <Markus.Niebel@tq-group.com>
+ */
+
+/ {
+       model = "TQ-Systems MBA6ULx Baseboard";
+
+       aliases {
+               mmc0 = &usdhc2;
+               mmc1 = &usdhc1;
+               rtc0 = &rtc0;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&reg_mba6ul_3v3>;
+               enable-gpios = <&expander_out0 4 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
+       beeper: beeper {
+               compatible = "gpio-beeper";
+               gpios = <&expander_out1 6 GPIO_ACTIVE_HIGH>;
+       };
+
+       gpio_buttons: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_buttons>;
+
+               button1 {
+                       label = "s14";
+                       linux,code = <KEY_1>;
+                       gpios = <&expander_in0 0 GPIO_ACTIVE_LOW>;
+               };
+
+               button2 {
+                       label = "s6";
+                       linux,code = <KEY_2>;
+                       gpios = <&expander_in0 1 GPIO_ACTIVE_LOW>;
+               };
+
+               button3 {
+                       label = "s7";
+                       linux,code = <KEY_3>;
+                       gpios = <&expander_in0 2 GPIO_ACTIVE_LOW>;
+               };
+
+               power-button {
+                       label = "POWER";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               status = "okay";
+
+               led1 {
+                       label = "led1";
+                       gpios = <&expander_out1 4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led2 {
+                       label = "led2";
+                       gpios = <&expander_out1 5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       reg_lcd_pwr: regulator-lcd-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd-pwr";
+               gpio = <&expander_out0 1 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               status = "disabled";
+       };
+
+       reg_mba6ul_3v3: regulator-mba6ul-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "supply-mba6ul-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_mba6ul_5v0: regulator-mba6ul-5v0 {
+               compatible = "regulator-fixed";
+               regulator-name = "supply-mba6ul-5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       reg_mpcie: regulator-mpcie-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "mpcie-3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&expander_out0 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+               startup-delay-us = <500000>;
+               vin-supply = <&reg_mba6ul_3v3>;
+       };
+
+       reg_otg2vbus_5v0: regulator-otg2-vbus-5v0 {
+               compatible = "regulator-fixed";
+               gpio = <&expander_out1 0 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-name = "otg2-vbus-supply-5v0";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&reg_mpcie>;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               linux,cma {
+                       compatible = "shared-dma-pool";
+                       reusable;
+                       size = <0x6000000>;
+                       linux,cma-default;
+               };
+       };
+
+       sound {
+               compatible = "fsl,imx-audio-tlv320aic32x4";
+               model = "imx-audio-tlv320aic32x4";
+               ssi-controller = <&sai1>;
+               audio-codec = <&tlv320aic32x4>;
+               audio-asrc = <&asrc>;
+       };
+};
+
+&can1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       xceiver-supply = <&reg_mba6ul_3v3>;
+       status = "okay";
+};
+
+&can2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_mba6ul_3v3>;
+       status = "okay";
+};
+
+&clks {
+       assigned-clocks = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
+       assigned-clock-rates = <768000000>;
+};
+
+&ecspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi2>;
+       num-cs = <1>;
+       status = "okay";
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       phy-supply = <&reg_mba6ul_3v3>;
+       phy-reset-gpios = <&expander_out1 1 GPIO_ACTIVE_LOW>;
+       phy-reset-duration = <25>;
+       phy-reset-post-delay = <1>;
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>, <&pinctrl_enet2_mdc>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy1>;
+       phy-supply = <&reg_mba6ul_3v3>;
+       phy-reset-gpios = <&expander_out1 2 GPIO_ACTIVE_LOW>;
+       phy-reset-duration = <25>;
+       phy-reset-post-delay = <1>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       clocks = <&clks IMX6UL_CLK_ENET_REF>;
+                       reg = <0>;
+                       max-speed = <100>;
+               };
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       clocks = <&clks IMX6UL_CLK_ENET2_REF_125M>;
+                       reg = <1>;
+                       max-speed = <100>;
+               };
+       };
+};
+
+&i2c4 {
+       tlv320aic32x4: audio-codec@18 {
+               compatible = "ti,tlv320aic32x4";
+               reg = <0x18>;
+               clocks = <&clks IMX6UL_CLK_SAI1>;
+               clock-names = "mclk";
+               ldoin-supply = <&reg_mba6ul_3v3>;
+               iov-supply = <&reg_mba6ul_3v3>;
+       };
+
+       jc42: temperature-sensor@19 {
+               compatible = "nxp,se97", "jedec,jc-42.4-temp";
+               reg = <0x19>;
+       };
+
+       expander_out0: gpio-expander@20 {
+               compatible = "nxp,pca9554";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       expander_in0: gpio-expander@21 {
+               compatible = "nxp,pca9554";
+               reg = <0x21>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_expander_in0>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               enet1_int-hog {
+                       gpio-hog;
+                       gpios = <6 0>;
+                       input;
+               };
+
+               enet2_int-hog {
+                       gpio-hog;
+                       gpios = <7 0>;
+                       input;
+               };
+       };
+
+       expander_out1: gpio-expander@22 {
+               compatible = "nxp,pca9554";
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+
+       analog_touch: touchscreen@41 {
+               compatible = "st,stmpe811";
+               reg = <0x41>;
+               interrupts = <21 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-parent = <&gpio4>;
+               interrupt-controller;
+               status = "disabled";
+
+               stmpe_touchscreen {
+                       compatible = "st,stmpe-ts";
+                       st,adc-freq = <1>;      /* 3.25 MHz ADC clock speed */
+                       st,ave-ctrl = <3>;      /* 8 sample average control */
+                       st,fraction-z = <7>;    /* 7 length fractional part in z */
+                       /*
+                        * 50 mA typical 80 mA max touchscreen drivers
+                        * current limit value
+                        */
+                       st,i-drive = <1>;
+                       st,mod-12b = <1>;       /* 12-bit ADC */
+                       st,ref-sel = <0>;       /* internal ADC reference */
+                       st,sample-time = <4>;   /* ADC converstion time: 80 clocks */
+                       st,settling = <3>;      /* 1 ms panel driver settling time */
+                       st,touch-det-delay = <5>; /* 5 ms touch detect interrupt delay */
+               };
+       };
+
+       /* NXP SE97BTP with temperature sensor + eeprom */
+       se97b: eeprom@51 {
+               compatible = "nxp,se97b", "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+};
+
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm2>;
+       status = "okay";
+};
+
+&sai1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       assigned-clocks = <&clks IMX6UL_CLK_SAI1_SEL>,
+                         <&clks IMX6UL_CLK_SAI1>;
+       assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
+       assigned-clock-rates = <0>, <24000000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&uart6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart6>;
+       /* for DTE mode, add below change */
+       /* fsl,dte-mode; */
+       /* pinctrl-0 = <&pinctrl_uart6dte>; */
+       uart-has-rtscts;
+       linux,rs485-enabled-at-boot-time;
+       rs485-rts-active-low;
+       rs485-rx-during-tx;
+       status = "okay";
+};
+
+/* otg-port */
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_otg1>;
+       power-active-high;
+       over-current-active-low;
+       /* we implement only dual role but not a fully featured OTG */
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+/* 7-port usb hub */
+/* id, pwr, oc pins not connected */
+&usbotg2 {
+       disable-over-current;
+       vbus-supply = <&reg_otg2vbus_5v0>;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc1>;
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       wp-gpios = <&gpio1 18 GPIO_ACTIVE_HIGH>;
+       bus-width = <4>;
+       vmmc-supply = <&reg_mba6ul_3v3>;
+       vqmmc-supply = <&reg_vccsd>;
+       no-1-8-v;
+       no-mmc;
+       no-sdio;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog1>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_buttons: buttonsgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0x100b0
+               >;
+       };
+
+       pinctrl_ecspi2: ecspi2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__ECSPI2_SCLK    0x1b020
+                       MX6UL_PAD_UART5_RX_DATA__ECSPI2_MISO    0x1b020
+                       MX6UL_PAD_UART5_TX_DATA__ECSPI2_MOSI    0x1b020
+                       MX6UL_PAD_UART4_RX_DATA__ECSPI2_SS0     0x1b020
+               >;
+       };
+
+       pinctrl_enet1: enet1grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER      0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b0a8
+               >;
+       };
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__ENET2_RX_ER      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA0__ENET2_RDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_RX_DATA1__ENET2_RDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0a0
+                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0a0
+                       MX6UL_PAD_ENET2_TX_EN__ENET2_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b0a8
+               >;
+       };
+
+       pinctrl_enet2_mdc: enet2mdcgrp {
+               fsl,pins = <
+                       /* mdio */
+                       MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
+               >;
+       };
+
+       pinctrl_expander_in0: expanderin0grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_DATA02__GPIO4_IO23        0x1b0b1
+               >;
+       };
+
+       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_pwm2: pwm2grp {
+               fsl,pins = <
+                       /* 100 k PD, DSE 120 OHM, SPPEED LO */
+                       MX6UL_PAD_GPIO1_IO09__PWM2_OUT          0x00003050
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_DATA05__SAI1_TX_BCLK      0x1b0b1
+                       MX6UL_PAD_CSI_DATA04__SAI1_TX_SYNC      0x1b0b1
+                       MX6UL_PAD_CSI_DATA07__SAI1_TX_DATA      0x1f0b8
+                       MX6UL_PAD_CSI_DATA06__SAI1_RX_DATA      0x110b0
+                       MX6UL_PAD_CSI_DATA01__SAI1_MCLK         0x1b0b1
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart6: uart6grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_MCLK__UART6_DCE_TX        0x1b0b1
+                       MX6UL_PAD_CSI_PIXCLK__UART6_DCE_RX      0x1b0b1
+                       MX6UL_PAD_CSI_VSYNC__UART6_DCE_RTS      0x1b0b1
+                       MX6UL_PAD_CSI_HSYNC__UART6_DCE_CTS      0x1b0b1
+               >;
+       };
+
+       pinctrl_uart6dte: uart6dte {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_PIXCLK__UART6_DTE_TX      0x1b0b1
+                       MX6UL_PAD_CSI_MCLK__UART6_DTE_RX        0x1b0b1
+                       MX6UL_PAD_CSI_HSYNC__UART6_DTE_RTS      0x1b0b1
+                       MX6UL_PAD_CSI_VSYNC__UART6_DTE_CTS      0x1b0b1
+               >;
+       };
+
+       pinctrl_usb_otg1: usbotg1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x00017059
+                       MX6UL_PAD_GPIO1_IO01__USB_OTG1_OC       0x0001b0b0
+                       MX6UL_PAD_GPIO1_IO04__USB_OTG1_PWR      0x0001b099
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x00017069
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x00017059
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x00017059
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x00017059
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x00017059
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x00017059
+                       /* WP */
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x0001b099
+                       /* CD */
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x0001b099
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x00017069
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x000170b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x000170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x000170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x000170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x000170b9
+                       /* WP */
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x0001b099
+                       /* CD */
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x0001b099
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x00017069
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x000170f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x000170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x000170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x000170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x000170f9
+                       /* WP */
+                       MX6UL_PAD_UART1_CTS_B__GPIO1_IO18       0x0001b099
+                       /* CD */
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x0001b099
+               >;
+       };
+
+       pinctrl_wdog1: wdog1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO08__WDOG1_WDOG_B      0x0001b099
+               >;
+       };
+};
index 61ec929..56ea875 100644 (file)
@@ -65,7 +65,7 @@
        pinctrl-0 = <&spi_nor_pins>;
        pinctrl-names = "default";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "mxicy,mx25l1606e";
                #address-cells = <1>;
                #size-cells = <1>;
index 4776f85..ef583cf 100644 (file)
                clock-names = "jpgdec-smi",
                              "jpgdec";
                power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
-               mediatek,larb = <&larb2>;
                iommus = <&iommu MT2701_M4U_PORT_JPGDEC_WDMA>,
                         <&iommu MT2701_M4U_PORT_JPGDEC_BSDMA>;
        };
                clocks =  <&imgsys CLK_IMG_VENC>;
                clock-names = "jpgenc";
                power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
-               mediatek,larb = <&larb2>;
                iommus = <&iommu MT2701_M4U_PORT_JPGENC_RDMA>,
                         <&iommu MT2701_M4U_PORT_JPGENC_BSDMA>;
        };
index bcb0846..3adab5c 100644 (file)
                clock-names = "jpgdec-smi",
                              "jpgdec";
                power-domains = <&scpsys MT2701_POWER_DOMAIN_ISP>;
-               mediatek,larb = <&larb2>;
                iommus = <&iommu MT2701_M4U_PORT_JPGDEC_WDMA>,
                         <&iommu MT2701_M4U_PORT_JPGDEC_BSDMA>;
        };
                interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&mmsys CLK_MM_DISP_OVL>;
                iommus = <&iommu MT2701_M4U_PORT_DISP_OVL_0>;
-               mediatek,larb = <&larb0>;
        };
 
        rdma0: rdma@14008000 {
                interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&mmsys CLK_MM_DISP_RDMA>;
                iommus = <&iommu MT2701_M4U_PORT_DISP_RDMA>;
-               mediatek,larb = <&larb0>;
        };
 
        wdma@14009000 {
                interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&mmsys CLK_MM_DISP_WDMA>;
                iommus = <&iommu MT2701_M4U_PORT_DISP_WDMA>;
-               mediatek,larb = <&larb0>;
        };
 
        bls: pwm@1400a000 {
                interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&mmsys CLK_MM_DISP_RDMA1>;
                iommus = <&iommu MT2701_M4U_PORT_DISP_RDMA1>;
-               mediatek,larb = <&larb0>;
        };
 
        dpi0: dpi@14014000 {
index 41744cc..01e1bb7 100644 (file)
@@ -17,7 +17,7 @@
 
 &fast_timer {
        /* compatible = "lsi,zevio-timer"; */
-       reg = <0x90010000 0x1000>, <0x900A0010 0x8>;
+       reg = <0x90010000 0x1000>, <0x900a0010 0x8>;
 };
 
 &uart {
 
 &timer0 {
        /* compatible = "lsi,zevio-timer"; */
-       reg = <0x900C0000 0x1000>, <0x900A0018 0x8>;
+       reg = <0x900c0000 0x1000>, <0x900a0018 0x8>;
 };
 
 &timer1 {
        compatible = "lsi,zevio-timer";
-       reg = <0x900D0000 0x1000>, <0x900A0020 0x8>;
+       reg = <0x900d0000 0x1000>, <0x900a0020 0x8>;
 };
 
 &keypad {
                #address-cells = <1>;
                #size-cells = <1>;
 
-               intc: interrupt-controller@DC000000 {
+               intc: interrupt-controller@dc000000 {
                        compatible = "lsi,zevio-intc";
                        interrupt-controller;
-                       reg = <0xDC000000 0x1000>;
+                       reg = <0xdc000000 0x1000>;
                        #interrupt-cells = <1>;
                };
        };
index 0c16b04..590b7df 100644 (file)
                #address-cells = <1>;
                #size-cells = <1>;
 
-               intc: interrupt-controller@DC000000 {
+               intc: interrupt-controller@dc000000 {
                        compatible = "arm,pl190-vic";
                        interrupt-controller;
-                       reg = <0xDC000000 0x1000>;
+                       reg = <0xdc000000 0x1000>;
                        #interrupt-cells = <1>;
                };
 
index 90e033d..bb240e6 100644 (file)
@@ -20,9 +20,9 @@
                reg = <0x00000000 0x80000>;
        };
 
-       sram: sram@A4000000 {
+       sram: sram@a4000000 {
                device = "memory";
-               reg = <0xA4000000 0x20000>;
+               reg = <0xa4000000 0x20000>;
        };
 
        timer_clk: timer_clk {
 
        base_clk: base_clk {
                #clock-cells = <0>;
-               reg = <0x900B0024 0x4>;
+               reg = <0x900b0024 0x4>;
        };
 
        ahb_clk: ahb_clk {
                #clock-cells = <0>;
-               reg = <0x900B0024 0x4>;
+               reg = <0x900b0024 0x4>;
                clocks = <&base_clk>;
        };
 
                #size-cells = <1>;
                ranges;
 
-               spi: spi@A9000000 {
-                       reg = <0xA9000000 0x1000>;
+               spi: spi@a9000000 {
+                       reg = <0xa9000000 0x1000>;
                };
 
-               usb0: usb@B0000000 {
+               usb0: usb@b0000000 {
                        compatible = "lsi,zevio-usb";
-                       reg = <0xB0000000 0x1000>;
+                       reg = <0xb0000000 0x1000>;
                        interrupts = <8>;
 
                        usb-phy = <&usb_phy>;
                        vbus-supply = <&vbus_reg>;
                };
 
-               usb1: usb@B4000000 {
-                       reg = <0xB4000000 0x1000>;
+               usb1: usb@b4000000 {
+                       reg = <0xb4000000 0x1000>;
                        interrupts = <9>;
                        status = "disabled";
                };
 
-               lcd: lcd@C0000000 {
+               lcd: lcd@c0000000 {
                        compatible = "arm,pl111", "arm,primecell";
-                       reg = <0xC0000000 0x1000>;
+                       reg = <0xc0000000 0x1000>;
                        interrupts = <21>;
 
                        /*
                        clock-names = "clcdclk", "apb_pclk";
                };
 
-               adc: adc@C4000000 {
-                       reg = <0xC4000000 0x1000>;
+               adc: adc@c4000000 {
+                       reg = <0xc4000000 0x1000>;
                        interrupts = <11>;
                };
 
-               tdes: crypto@C8010000 {
-                       reg = <0xC8010000 0x1000>;
+               tdes: crypto@c8010000 {
+                       reg = <0xc8010000 0x1000>;
                };
 
-               sha256: crypto@CC000000 {
-                       reg = <0xCC000000 0x1000>;
+               sha256: crypto@cc000000 {
+                       reg = <0xcc000000 0x1000>;
                };
 
                apb@90000000 {
                                interrupts = <1>;
                        };
 
-                       timer0: timer@900C0000 {
-                               reg = <0x900C0000 0x1000>;
+                       timer0: timer@900c0000 {
+                               reg = <0x900c0000 0x1000>;
                                clocks = <&timer_clk>, <&timer_clk>,
                                         <&timer_clk>;
                                clock-names = "timer0clk", "timer1clk",
                                              "apb_pclk";
                        };
 
-                       timer1: timer@900D0000 {
-                               reg = <0x900D0000 0x1000>;
+                       timer1: timer@900d0000 {
+                               reg = <0x900d0000 0x1000>;
                                interrupts = <19>;
                                clocks = <&timer_clk>, <&timer_clk>,
                                         <&timer_clk>;
                                interrupts = <4>;
                        };
 
-                       misc: misc@900A0000 {
-                               reg = <0x900A0000 0x1000>;
+                       misc: misc@900a0000 {
+                               reg = <0x900a0000 0x1000>;
                        };
 
-                       pwr: pwr@900B0000 {
-                               reg = <0x900B0000 0x1000>;
+                       pwr: pwr@900b0000 {
+                               reg = <0x900b0000 0x1000>;
                                interrupts = <15>;
                        };
 
-                       keypad: input@900E0000 {
+                       keypad: input@900e0000 {
                                compatible = "ti,nspire-keypad";
-                               reg = <0x900E0000 0x1000>;
+                               reg = <0x900e0000 0x1000>;
                                interrupts = <16>;
 
                                scan-interval = <1000>;
                                clocks = <&apb_pclk>;
                        };
 
-                       contrast: contrast@900F0000 {
-                               reg = <0x900F0000 0x1000>;
+                       contrast: contrast@900f0000 {
+                               reg = <0x900f0000 0x1000>;
                        };
 
                        led: led@90110000 {
index eb6eb21..d10669f 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi0cs1_pins>;
        status = "okay";
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
        pinctrl-0 = <&spi3_pins>, <&spi3cs1_pins>;
        status = "okay";
 
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
                m25p,fast-read;
                label = "pnor";
        };
-       spi-nor@1 {
+       flash@1 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
index d4ff499..491606c 100644 (file)
        pinctrl-0 = <&spi0cs1_pins>;
        status = "okay";
 
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
index 82a104b..a0c2d76 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi0cs1_pins>;
        status = "okay";
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
                        };
                };
        };
-       spi-nor@1 {
+       flash@1 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
 
 &fiu3 {
        pinctrl-0 = <&spi3_pins>;
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
index 0334641..3dad328 100644 (file)
@@ -67,7 +67,7 @@
 
 &fiu0 {
        status = "okay";
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
 &fiu3 {
        pinctrl-0 = <&spi3_pins>, <&spi3quad_pins>;
        status = "okay";
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
 &spi0 {
        cs-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
        status = "okay";
-       Flash@0 {
+       flash@0 {
                compatible = "winbond,w25q128",
                "jedec,spi-nor";
                reg = <0x0>;
 &spi1 {
        cs-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
        status = "okay";
-       Flash@0 {
+       flash@0 {
                compatible = "winbond,w25q128fw",
                "jedec,spi-nor";
                reg = <0x0>;
index 767e0ac..132e702 100644 (file)
        pinctrl-0 = <&spi0cs1_pins>;
        status = "okay";
 
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
                };
        };
 
-       spi-nor@1 {
+       flash@1 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
        pinctrl-0 = <&spi3_pins>;
        status = "okay";
 
-       spi-nor@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
index a858ebf..35eced6 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@1 {
+               ethernet: ethernet@1 {
                        compatible = "usb424,ec00";
                        reg = <1>;
                };
index 2ec3628..24adfac 100644 (file)
                ti,bit-shift = <2>;
        };
 
-       d2d_26m_fck: d2d_26m_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&sys_ck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <3>;
-       };
-
-       fshostusb_fck: fshostusb_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <5>;
-       };
-
-       ssi_ssr_gate_fck_3430es1: ssi_ssr_gate_fck_3430es1@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-no-wait-gate-clock";
-               clocks = <&corex2_fck>;
-               ti,bit-shift = <0>;
-               reg = <0x0a00>;
-       };
-
-       ssi_ssr_div_fck_3430es1: ssi_ssr_div_fck_3430es1@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-divider-clock";
-               clocks = <&corex2_fck>;
-               ti,bit-shift = <8>;
-               reg = <0x0a40>;
-               ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>;
+       clock@a00 {
+               compatible = "ti,clksel";
+               reg = <0xa00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               d2d_26m_fck: clock-d2d-26m-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "d2d_26m_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <3>;
+               };
+
+               fshostusb_fck: clock-fshostusb-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "fshostusb_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <5>;
+               };
+
+               ssi_ssr_gate_fck_3430es1: clock-ssi-ssr-gate-fck-3430es1 {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-no-wait-gate-clock";
+                       clock-output-names = "ssi_ssr_gate_fck_3430es1";
+                       clocks = <&corex2_fck>;
+                       ti,bit-shift = <0>;
+               };
+       };
+
+       clock@a40 {
+               compatible = "ti,clksel";
+               reg = <0xa40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               ssi_ssr_div_fck_3430es1: clock-ssi-ssr-div-fck-3430es1 {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-divider-clock";
+                       clock-output-names = "ssi_ssr_div_fck_3430es1";
+                       clocks = <&corex2_fck>;
+                       ti,bit-shift = <8>;
+                       ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>;
+               };
+
+               usb_l4_div_ick: clock-usb-l4-div-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-divider-clock";
+                       clock-output-names = "usb_l4_div_ick";
+                       clocks = <&l4_ick>;
+                       ti,bit-shift = <4>;
+                       ti,max-div = <1>;
+                       ti,index-starts-at-one;
+               };
        };
 
        ssi_ssr_fck: ssi_ssr_fck_3430es1 {
                clock-div = <2>;
        };
 
-       hsotgusb_ick_3430es1: hsotgusb_ick_3430es1@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-no-wait-interface-clock";
-               clocks = <&core_l3_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <4>;
-       };
-
-       fac_ick: fac_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <8>;
+       clock@a10 {
+               compatible = "ti,clksel";
+               reg = <0xa10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               hsotgusb_ick_3430es1: clock-hsotgusb-ick-3430es1 {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-no-wait-interface-clock";
+                       clock-output-names = "hsotgusb_ick_3430es1";
+                       clocks = <&core_l3_ick>;
+                       ti,bit-shift = <4>;
+               };
+
+               fac_ick: clock-fac-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "fac_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <8>;
+               };
+
+               ssi_ick: clock-ssi-ick-3430es1 {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-no-wait-interface-clock";
+                       clock-output-names = "ssi_ick_3430es1";
+                       clocks = <&ssi_l4_ick>;
+                       ti,bit-shift = <0>;
+               };
+
+               usb_l4_gate_ick: clock-usb-l4-gate-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-interface-clock";
+                       clock-output-names = "usb_l4_gate_ick";
+                       clocks = <&l4_ick>;
+                       ti,bit-shift = <5>;
+               };
        };
 
        ssi_l4_ick: ssi_l4_ick {
                clock-div = <1>;
        };
 
-       ssi_ick: ssi_ick_3430es1@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-no-wait-interface-clock";
-               clocks = <&ssi_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <0>;
-       };
-
-       usb_l4_gate_ick: usb_l4_gate_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-interface-clock";
-               clocks = <&l4_ick>;
-               ti,bit-shift = <5>;
-               reg = <0x0a10>;
-       };
-
-       usb_l4_div_ick: usb_l4_div_ick@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-divider-clock";
-               clocks = <&l4_ick>;
-               ti,bit-shift = <4>;
-               ti,max-div = <1>;
-               reg = <0x0a40>;
-               ti,index-starts-at-one;
-       };
-
        usb_l4_ick: usb_l4_ick {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&usb_l4_gate_ick>, <&usb_l4_div_ick>;
        };
 
-       dss1_alwon_fck: dss1_alwon_fck_3430es1@e00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&dpll4_m4x2_ck>;
-               ti,bit-shift = <0>;
-               reg = <0x0e00>;
-               ti,set-rate-parent;
+       clock@e00 {
+               compatible = "ti,clksel";
+               reg = <0xe00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               dss1_alwon_fck: clock-dss1-alwon-fck-3430es1 {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "dss1_alwon_fck_3430es1";
+                       clocks = <&dpll4_m4x2_ck>;
+                       ti,bit-shift = <0>;
+                       ti,set-rate-parent;
+               };
        };
 
        dss_ick: dss_ick_3430es1@e10 {
index 21079cd..8374532 100644 (file)
                clock-div = <1>;
        };
 
-       aes1_ick: aes1_ick@a14 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&security_l4_ick2>;
-               ti,bit-shift = <3>;
-               reg = <0x0a14>;
-       };
+       clock@a14 {
+               compatible = "ti,clksel";
+               reg = <0xa14>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       rng_ick: rng_ick@a14 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&security_l4_ick2>;
-               reg = <0x0a14>;
-               ti,bit-shift = <2>;
-       };
+               aes1_ick: clock-aes1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "aes1_ick";
+                       clocks = <&security_l4_ick2>;
+                       ti,bit-shift = <3>;
+               };
 
-       sha11_ick: sha11_ick@a14 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&security_l4_ick2>;
-               reg = <0x0a14>;
-               ti,bit-shift = <1>;
-       };
+               rng_ick: clock-rng-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "rng_ick";
+                       clocks = <&security_l4_ick2>;
+                       ti,bit-shift = <2>;
+               };
 
-       des1_ick: des1_ick@a14 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&security_l4_ick2>;
-               reg = <0x0a14>;
-               ti,bit-shift = <0>;
+               sha11_ick: clock-sha11-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "sha11_ick";
+                       clocks = <&security_l4_ick2>;
+                       ti,bit-shift = <1>;
+               };
+
+               des1_ick: clock-des1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "des1_ick";
+                       clocks = <&security_l4_ick2>;
+                       ti,bit-shift = <0>;
+               };
+
+               pka_ick: clock-pka-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "pka_ick";
+                       clocks = <&security_l3_ick>;
+                       ti,bit-shift = <4>;
+               };
        };
 
-       cam_mclk: cam_mclk@f00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&dpll4_m5x2_ck>;
-               ti,bit-shift = <0>;
-               reg = <0x0f00>;
-               ti,set-rate-parent;
+       /* CM_FCLKEN_CAM */
+       clock@f00 {
+               compatible = "ti,clksel";
+               reg = <0xf00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               cam_mclk: clock-cam-mclk {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "cam_mclk";
+                       clocks = <&dpll4_m5x2_ck>;
+                       ti,bit-shift = <0>;
+                       ti,set-rate-parent;
+               };
+
+               csi2_96m_fck: clock-csi2-96m-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "csi2_96m_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <1>;
+               };
        };
 
        cam_ick: cam_ick@f10 {
                ti,bit-shift = <0>;
        };
 
-       csi2_96m_fck: csi2_96m_fck@f00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0f00>;
-               ti,bit-shift = <1>;
-       };
-
        security_l3_ick: security_l3_ick {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       pka_ick: pka_ick@a14 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&security_l3_ick>;
-               reg = <0x0a14>;
-               ti,bit-shift = <4>;
-       };
+       clock@a10 {
+               compatible = "ti,clksel";
+               reg = <0xa10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       icr_ick: icr_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <29>;
-       };
+               icr_ick: clock-icr-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "icr_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <29>;
+               };
 
-       des2_ick: des2_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <26>;
-       };
+               des2_ick: clock-des2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "des2_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <26>;
+               };
 
-       mspro_ick: mspro_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <23>;
-       };
+               mspro_ick: clock-mspro-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mspro_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <23>;
+               };
 
-       mailboxes_ick: mailboxes_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <7>;
+               mailboxes_ick: clock-mailboxes-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mailboxes_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <7>;
+               };
+
+               sad2d_ick: clock-sad2d-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "sad2d_ick";
+                       clocks = <&l3_ick>;
+                       ti,bit-shift = <3>;
+               };
        };
 
        ssi_l4_ick: ssi_l4_ick {
                clock-div = <1>;
        };
 
-       sr1_fck: sr1_fck@c00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&sys_ck>;
-               reg = <0x0c00>;
-               ti,bit-shift = <6>;
-       };
+       clock@c00 {
+               compatible = "ti,clksel";
+               reg = <0xc00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       sr2_fck: sr2_fck@c00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&sys_ck>;
-               reg = <0x0c00>;
-               ti,bit-shift = <7>;
+               sr1_fck: clock-sr1-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "sr1_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <6>;
+               };
+
+               sr2_fck: clock-sr2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "sr2_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <7>;
+               };
        };
 
        sr_l4_ick: sr_l4_ick {
                ti,bit-shift = <0>;
        };
 
-       modem_fck: modem_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&sys_ck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <31>;
-       };
+       clock@a00 {
+               compatible = "ti,clksel";
+               reg = <0xa00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       sad2d_ick: sad2d_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&l3_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <3>;
-       };
+               modem_fck: clock-modem-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "modem_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <31>;
+               };
 
-       mad2d_ick: mad2d_ick@a18 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&l3_ick>;
-               reg = <0x0a18>;
-               ti,bit-shift = <3>;
+               mspro_fck: clock-mspro-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mspro_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <23>;
+               };
        };
 
-       mspro_fck: mspro_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <23>;
+       /* CM_ICLKEN3_CORE */
+       clock@a18 {
+               compatible = "ti,clksel";
+               reg = <0xa18>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               mad2d_ick: clock-mad2d-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mad2d_ick";
+                       clocks = <&l3_ick>;
+                       ti,bit-shift = <3>;
+               };
        };
+
 };
 
 &cm_clockdomains {
index 9974d52..dcc5cfc 100644 (file)
                ti,bit-shift = <2>;
        };
 
-       usbtll_ick: usbtll_ick@a18 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a18>;
-               ti,bit-shift = <2>;
+       /* CM_ICLKEN3_CORE */
+       clock@a18 {
+               compatible = "ti,clksel";
+               reg = <0xa18>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               usbtll_ick: clock-usbtll-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "usbtll_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <2>;
+               };
        };
 
-       mmchs3_ick: mmchs3_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <30>;
+       clock@a10 {
+               compatible = "ti,clksel";
+               reg = <0xa10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               mmchs3_ick: clock-mmchs3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mmchs3_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <30>;
+               };
        };
 
-       mmchs3_fck: mmchs3_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <30>;
+       clock@a00 {
+               compatible = "ti,clksel";
+               reg = <0xa00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               mmchs3_fck: clock-mmchs3-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mmchs3_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <30>;
+               };
        };
 
-       dss1_alwon_fck: dss1_alwon_fck_3430es2@e00 {
-               #clock-cells = <0>;
-               compatible = "ti,dss-gate-clock";
-               clocks = <&dpll4_m4x2_ck>;
-               ti,bit-shift = <0>;
-               reg = <0x0e00>;
-               ti,set-rate-parent;
+       clock@e00 {
+               compatible = "ti,clksel";
+               reg = <0xe00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               dss1_alwon_fck: clock-dss1-alwon-fck-3430es2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,dss-gate-clock";
+                       clock-output-names = "dss1_alwon_fck_3430es2";
+                       clocks = <&dpll4_m4x2_ck>;
+                       ti,bit-shift = <0>;
+                       ti,set-rate-parent;
+               };
        };
 
        dss_ick: dss_ick_3430es2@e10 {
index 4e9cc90..c5fdb2b 100644 (file)
                ti,set-bit-to-disable;
        };
 
-       uart4_fck: uart4_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&per_48m_fck>;
+       clock@1000 {
+               compatible = "ti,clksel";
                reg = <0x1000>;
-               ti,bit-shift = <18>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               uart4_fck: clock-uart4-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "uart4_fck";
+                       clocks = <&per_48m_fck>;
+                       ti,bit-shift = <18>;
+               };
        };
 };
 
index 945537a..c94eb86 100644 (file)
@@ -5,21 +5,35 @@
  * Copyright (C) 2013 Texas Instruments, Inc.
  */
 &cm_clocks {
-       ssi_ssr_gate_fck_3430es2: ssi_ssr_gate_fck_3430es2@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-no-wait-gate-clock";
-               clocks = <&corex2_fck>;
-               ti,bit-shift = <0>;
-               reg = <0x0a00>;
-       };
-
-       ssi_ssr_div_fck_3430es2: ssi_ssr_div_fck_3430es2@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-divider-clock";
-               clocks = <&corex2_fck>;
-               ti,bit-shift = <8>;
-               reg = <0x0a40>;
-               ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>;
+       clock@a00 {
+               compatible = "ti,clksel";
+               reg = <0xa00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               ssi_ssr_gate_fck_3430es2: clock-ssi-ssr-gate-fck-3430es2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-no-wait-gate-clock";
+                       clock-output-names = "ssi_ssr_gate_fck_3430es2";
+                       clocks = <&corex2_fck>;
+                       ti,bit-shift = <0>;
+               };
+       };
+
+       clock@a40 {
+               compatible = "ti,clksel";
+               reg = <0xa40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               ssi_ssr_div_fck_3430es2: clock-ssi-ssr-div-fck-3430es2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-divider-clock";
+                       clock-output-names = "ssi_ssr_div_fck_3430es2";
+                       clocks = <&corex2_fck>;
+                       ti,bit-shift = <8>;
+                       ti,dividers = <0>, <1>, <2>, <3>, <4>, <0>, <6>, <0>, <8>;
+               };
        };
 
        ssi_ssr_fck: ssi_ssr_fck_3430es2 {
                clock-div = <2>;
        };
 
-       hsotgusb_ick_3430es2: hsotgusb_ick_3430es2@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-hsotgusb-interface-clock";
-               clocks = <&core_l3_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <4>;
+       clock@a10 {
+               compatible = "ti,clksel";
+               reg = <0xa10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               hsotgusb_ick_3430es2: clock-hsotgusb-ick-3430es2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-hsotgusb-interface-clock";
+                       clock-output-names = "hsotgusb_ick_3430es2";
+                       clocks = <&core_l3_ick>;
+                       ti,bit-shift = <4>;
+               };
+
+               ssi_ick: clock-ssi-ick-3430es2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-ssi-interface-clock";
+                       clock-output-names = "ssi_ick_3430es2";
+                       clocks = <&ssi_l4_ick>;
+                       ti,bit-shift = <0>;
+               };
        };
 
        ssi_l4_ick: ssi_l4_ick {
                clock-div = <1>;
        };
 
-       ssi_ick: ssi_ick_3430es2@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-ssi-interface-clock";
-               clocks = <&ssi_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <0>;
-       };
+       clock@c00 {
+               compatible = "ti,clksel";
+               reg = <0xc00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
 
-       usim_gate_fck: usim_gate_fck@c00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&omap_96m_fck>;
-               ti,bit-shift = <9>;
-               reg = <0x0c00>;
+               usim_gate_fck: clock-usim-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "usim_gate_fck";
+                       clocks = <&omap_96m_fck>;
+                       ti,bit-shift = <9>;
+               };
        };
 
        sys_d2_ck: sys_d2_ck {
                clock-div = <20>;
        };
 
-       usim_mux_fck: usim_mux_fck@c40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&sys_ck>, <&sys_d2_ck>, <&omap_96m_d2_fck>, <&omap_96m_d4_fck>, <&omap_96m_d8_fck>, <&omap_96m_d10_fck>, <&dpll5_m2_d4_ck>, <&dpll5_m2_d8_ck>, <&dpll5_m2_d16_ck>, <&dpll5_m2_d20_ck>;
-               ti,bit-shift = <3>;
-               reg = <0x0c40>;
-               ti,index-starts-at-one;
+       clock@c40 {
+               compatible = "ti,clksel";
+               reg = <0xc40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               usim_mux_fck: clock-usim-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "usim_mux_fck";
+                       clocks = <&sys_ck>, <&sys_d2_ck>, <&omap_96m_d2_fck>, <&omap_96m_d4_fck>, <&omap_96m_d8_fck>, <&omap_96m_d10_fck>, <&dpll5_m2_d4_ck>, <&dpll5_m2_d8_ck>, <&dpll5_m2_d16_ck>, <&dpll5_m2_d20_ck>;
+                       ti,bit-shift = <3>;
+                       ti,index-starts-at-one;
+               };
        };
 
        usim_fck: usim_fck {
                clocks = <&usim_gate_fck>, <&usim_mux_fck>;
        };
 
-       usim_ick: usim_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <9>;
+       clock@c10 {
+               compatible = "ti,clksel";
+               reg = <0xc10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               usim_ick: clock-usim-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "usim_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <9>;
+               };
        };
 };
 
index 0656c32..2e13ca1 100644 (file)
 };
 
 &scm_clocks {
-       mcbsp5_mux_fck: mcbsp5_mux_fck@68 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&core_96m_fck>, <&mcbsp_clks>;
-               ti,bit-shift = <4>;
+       /* CONTROL_DEVCONF1 */
+       clock@68 {
+               compatible = "ti,clksel";
                reg = <0x68>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               mcbsp5_mux_fck: clock-mcbsp5-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "mcbsp5_mux_fck";
+                       clocks = <&core_96m_fck>, <&mcbsp_clks>;
+                       ti,bit-shift = <4>;
+               };
+
+               mcbsp3_mux_fck: clock-mcbsp3-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "mcbsp3_mux_fck";
+                       clocks = <&per_96m_fck>, <&mcbsp_clks>;
+               };
+
+               mcbsp4_mux_fck: clock-mcbsp4-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "mcbsp4_mux_fck";
+                       clocks = <&per_96m_fck>, <&mcbsp_clks>;
+                       ti,bit-shift = <2>;
+               };
        };
 
        mcbsp5_fck: mcbsp5_fck {
                clocks = <&mcbsp5_gate_fck>, <&mcbsp5_mux_fck>;
        };
 
-       mcbsp1_mux_fck: mcbsp1_mux_fck@4 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&core_96m_fck>, <&mcbsp_clks>;
-               ti,bit-shift = <2>;
-               reg = <0x04>;
+       /* CONTROL_DEVCONF0 */
+       clock@4 {
+               compatible = "ti,clksel";
+               reg = <0x4>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               mcbsp1_mux_fck: clock-mcbsp1-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "mcbsp1_mux_fck";
+                       clocks = <&core_96m_fck>, <&mcbsp_clks>;
+                       ti,bit-shift = <2>;
+               };
+
+               mcbsp2_mux_fck: clock-mcbsp2-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "mcbsp2_mux_fck";
+                       clocks = <&per_96m_fck>, <&mcbsp_clks>;
+                       ti,bit-shift = <6>;
+               };
        };
 
        mcbsp1_fck: mcbsp1_fck {
                clocks = <&mcbsp1_gate_fck>, <&mcbsp1_mux_fck>;
        };
 
-       mcbsp2_mux_fck: mcbsp2_mux_fck@4 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&per_96m_fck>, <&mcbsp_clks>;
-               ti,bit-shift = <6>;
-               reg = <0x04>;
-       };
-
        mcbsp2_fck: mcbsp2_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&mcbsp2_gate_fck>, <&mcbsp2_mux_fck>;
        };
 
-       mcbsp3_mux_fck: mcbsp3_mux_fck@68 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&per_96m_fck>, <&mcbsp_clks>;
-               reg = <0x68>;
-       };
-
        mcbsp3_fck: mcbsp3_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&mcbsp3_gate_fck>, <&mcbsp3_mux_fck>;
        };
 
-       mcbsp4_mux_fck: mcbsp4_mux_fck@68 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&per_96m_fck>, <&mcbsp_clks>;
-               ti,bit-shift = <2>;
-               reg = <0x68>;
-       };
-
        mcbsp4_fck: mcbsp4_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                reg = <0x0d00>, <0x0d20>, <0x0d40>, <0x0d30>;
        };
 
-       dpll3_m3_ck: dpll3_m3_ck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll3_ck>;
-               ti,bit-shift = <16>;
-               ti,max-div = <31>;
+       /* CM_CLKSEL1_EMU */
+       clock@1140 {
+               compatible = "ti,clksel";
                reg = <0x1140>;
-               ti,index-starts-at-one;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               dpll3_m3_ck: clock-dpll3-m3 {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dpll3_m3_ck";
+                       clocks = <&dpll3_ck>;
+                       ti,bit-shift = <16>;
+                       ti,max-div = <31>;
+                       ti,index-starts-at-one;
+               };
+
+               dpll4_m6_ck: clock-dpll4-m6 {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dpll4_m6_ck";
+                       clocks = <&dpll4_ck>;
+                       ti,bit-shift = <24>;
+                       ti,max-div = <63>;
+                       ti,index-starts-at-one;
+               };
+
+               emu_src_mux_ck: clock-emu-src-mux {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "emu_src_mux_ck";
+                       clocks = <&sys_ck>, <&emu_core_alwon_ck>, <&emu_per_alwon_ck>, <&emu_mpu_alwon_ck>;
+               };
+
+               pclk_fck: clock-pclk-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "pclk_fck";
+                       clocks = <&emu_src_ck>;
+                       ti,bit-shift = <8>;
+                       ti,max-div = <7>;
+                       ti,index-starts-at-one;
+               };
+
+               pclkx2_fck: clock-pclkx2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "pclkx2_fck";
+                       clocks = <&emu_src_ck>;
+                       ti,bit-shift = <6>;
+                       ti,max-div = <3>;
+                       ti,index-starts-at-one;
+               };
+
+               atclk_fck: clock-atclk-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "atclk_fck";
+                       clocks = <&emu_src_ck>;
+                       ti,bit-shift = <4>;
+                       ti,max-div = <3>;
+                       ti,index-starts-at-one;
+               };
+
+               traceclk_src_fck: clock-traceclk-src-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "traceclk_src_fck";
+                       clocks = <&sys_ck>, <&emu_core_alwon_ck>, <&emu_per_alwon_ck>, <&emu_mpu_alwon_ck>;
+                       ti,bit-shift = <2>;
+               };
+
+               traceclk_fck: clock-traceclk-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "traceclk_fck";
+                       clocks = <&traceclk_src_fck>;
+                       ti,bit-shift = <11>;
+                       ti,max-div = <7>;
+                       ti,index-starts-at-one;
+               };
        };
 
        dpll3_m3x2_mul_ck: dpll3_m3x2_mul_ck {
                clock-frequency = <0x0>;
        };
 
-       dpll3_m2_ck: dpll3_m2_ck@d40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll3_ck>;
-               ti,bit-shift = <27>;
-               ti,max-div = <31>;
-               reg = <0x0d40>;
-               ti,index-starts-at-one;
-       };
-
        core_ck: core_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       omap_96m_fck: omap_96m_fck@d40 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&cm_96m_fck>, <&sys_ck>;
-               ti,bit-shift = <6>;
-               reg = <0x0d40>;
-       };
-
-       dpll4_m3_ck: dpll4_m3_ck@e40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll4_ck>;
-               ti,bit-shift = <8>;
-               ti,max-div = <32>;
-               reg = <0x0e40>;
-               ti,index-starts-at-one;
+       /* CM_CLKSEL1_PLL */
+       clock@d40 {
+               compatible = "ti,clksel";
+               reg = <0xd40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               dpll3_m2_ck: clock-dpll3-m2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dpll3_m2_ck";
+                       clocks = <&dpll3_ck>;
+                       ti,bit-shift = <27>;
+                       ti,max-div = <31>;
+                       ti,index-starts-at-one;
+               };
+
+               omap_96m_fck: clock-omap-96m-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "omap_96m_fck";
+                       clocks = <&cm_96m_fck>, <&sys_ck>;
+                       ti,bit-shift = <6>;
+               };
+
+               omap_54m_fck: clock-omap-54m-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "omap_54m_fck";
+                       clocks = <&dpll4_m3x2_ck>, <&sys_altclk>;
+                       ti,bit-shift = <5>;
+               };
+
+               omap_48m_fck: clock-omap-48m-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "omap_48m_fck";
+                       clocks = <&cm_96m_d2_fck>, <&sys_altclk>;
+                       ti,bit-shift = <3>;
+               };
+       };
+
+       /* CM_CLKSEL_DSS */
+       clock@e40 {
+               compatible = "ti,clksel";
+               reg = <0xe40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               dpll4_m3_ck: clock-dpll4-m3 {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dpll4_m3_ck";
+                       clocks = <&dpll4_ck>;
+                       ti,bit-shift = <8>;
+                       ti,max-div = <32>;
+                       ti,index-starts-at-one;
+               };
+
+               dpll4_m4_ck: clock-dpll4-m4 {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dpll4_m4_ck";
+                       clocks = <&dpll4_ck>;
+                       ti,max-div = <16>;
+                       ti,index-starts-at-one;
+               };
        };
 
        dpll4_m3x2_mul_ck: dpll4_m3x2_mul_ck {
                ti,set-bit-to-disable;
        };
 
-       omap_54m_fck: omap_54m_fck@d40 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&dpll4_m3x2_ck>, <&sys_altclk>;
-               ti,bit-shift = <5>;
-               reg = <0x0d40>;
-       };
-
        cm_96m_d2_fck: cm_96m_d2_fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <2>;
        };
 
-       omap_48m_fck: omap_48m_fck@d40 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&cm_96m_d2_fck>, <&sys_altclk>;
-               ti,bit-shift = <3>;
-               reg = <0x0d40>;
-       };
-
        omap_12m_fck: omap_12m_fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <4>;
        };
 
-       dpll4_m4_ck: dpll4_m4_ck@e40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll4_ck>;
-               ti,max-div = <16>;
-               reg = <0x0e40>;
-               ti,index-starts-at-one;
-       };
-
        dpll4_m4x2_mul_ck: dpll4_m4x2_mul_ck {
                #clock-cells = <0>;
                compatible = "ti,fixed-factor-clock";
                ti,set-rate-parent;
        };
 
-       dpll4_m6_ck: dpll4_m6_ck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll4_ck>;
-               ti,bit-shift = <24>;
-               ti,max-div = <63>;
-               reg = <0x1140>;
-               ti,index-starts-at-one;
-       };
-
        dpll4_m6x2_mul_ck: dpll4_m6x2_mul_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       clkout2_src_gate_ck: clkout2_src_gate_ck@d70 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-no-wait-gate-clock";
-               clocks = <&core_ck>;
-               ti,bit-shift = <7>;
-               reg = <0x0d70>;
-       };
-
-       clkout2_src_mux_ck: clkout2_src_mux_ck@d70 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&core_ck>, <&sys_ck>, <&cm_96m_fck>, <&omap_54m_fck>;
-               reg = <0x0d70>;
+       /* CM_CLKOUT_CTRL */
+       clock@d70 {
+               compatible = "ti,clksel";
+               reg = <0xd70>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               clkout2_src_gate_ck: clock-clkout2-src-gate {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-no-wait-gate-clock";
+                       clock-output-names = "clkout2_src_gate_ck";
+                       clocks = <&core_ck>;
+                       ti,bit-shift = <7>;
+               };
+
+               clkout2_src_mux_ck: clock-clkout2-src-mux {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "clkout2_src_mux_ck";
+                       clocks = <&core_ck>, <&sys_ck>, <&cm_96m_fck>, <&omap_54m_fck>;
+               };
+
+               sys_clkout2: clock-sys-clkout2 {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "sys_clkout2";
+                       clocks = <&clkout2_src_ck>;
+                       ti,bit-shift = <3>;
+                       ti,max-div = <64>;
+                       ti,index-power-of-two;
+               };
        };
 
        clkout2_src_ck: clkout2_src_ck {
                clocks = <&clkout2_src_gate_ck>, <&clkout2_src_mux_ck>;
        };
 
-       sys_clkout2: sys_clkout2@d70 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&clkout2_src_ck>;
-               ti,bit-shift = <3>;
-               ti,max-div = <64>;
-               reg = <0x0d70>;
-               ti,index-power-of-two;
-       };
-
        mpu_ck: mpu_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       l3_ick: l3_ick@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&core_ck>;
-               ti,max-div = <3>;
-               reg = <0x0a40>;
-               ti,index-starts-at-one;
-       };
-
-       l4_ick: l4_ick@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&l3_ick>;
-               ti,bit-shift = <2>;
-               ti,max-div = <3>;
-               reg = <0x0a40>;
-               ti,index-starts-at-one;
-       };
-
-       rm_ick: rm_ick@c40 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&l4_ick>;
-               ti,bit-shift = <1>;
-               ti,max-div = <3>;
-               reg = <0x0c40>;
-               ti,index-starts-at-one;
-       };
-
-       gpt10_gate_fck: gpt10_gate_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <11>;
-               reg = <0x0a00>;
-       };
-
-       gpt10_mux_fck: gpt10_mux_fck@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <6>;
-               reg = <0x0a40>;
+       /* CM_CLKSEL_CORE */
+       clock@a40 {
+               compatible = "ti,clksel";
+               reg = <0xa40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               l3_ick: clock-l3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "l3_ick";
+                       clocks = <&core_ck>;
+                       ti,max-div = <3>;
+                       ti,index-starts-at-one;
+               };
+
+               l4_ick: clock-l4-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "l4_ick";
+                       clocks = <&l3_ick>;
+                       ti,bit-shift = <2>;
+                       ti,max-div = <3>;
+                       ti,index-starts-at-one;
+               };
+
+               gpt10_mux_fck: clock-gpt10-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt10_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <6>;
+               };
+
+               gpt11_mux_fck: clock-gpt11-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt11_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <7>;
+               };
+       };
+
+       /* CM_CLKSEL_WKUP */
+       clock@c40 {
+               compatible = "ti,clksel";
+               reg = <0xc40>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               rm_ick: clock-rm-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "rm_ick";
+                       clocks = <&l4_ick>;
+                       ti,bit-shift = <1>;
+                       ti,max-div = <3>;
+                       ti,index-starts-at-one;
+               };
+
+               gpt1_mux_fck: clock-gpt1-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt1_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+               };
+       };
+
+       /* CM_FCLKEN1_CORE */
+       clock@a00 {
+               compatible = "ti,clksel";
+               reg = <0xa00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               gpt10_gate_fck: clock-gpt10-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt10_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <11>;
+               };
+
+               gpt11_gate_fck: clock-gpt11-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt11_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <12>;
+               };
+
+               mmchs2_fck: clock-mmchs2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mmchs2_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <25>;
+               };
+
+               mmchs1_fck: clock-mmchs1-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mmchs1_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <24>;
+               };
+
+               i2c3_fck: clock-i2c3-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "i2c3_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <17>;
+               };
+
+               i2c2_fck: clock-i2c2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "i2c2_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <16>;
+               };
+
+               i2c1_fck: clock-i2c1-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "i2c1_fck";
+                       clocks = <&core_96m_fck>;
+                       ti,bit-shift = <15>;
+               };
+
+               mcbsp5_gate_fck: clock-mcbsp5-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "mcbsp5_gate_fck";
+                       clocks = <&mcbsp_clks>;
+                       ti,bit-shift = <10>;
+               };
+
+               mcbsp1_gate_fck: clock-mcbsp1-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "mcbsp1_gate_fck";
+                       clocks = <&mcbsp_clks>;
+                       ti,bit-shift = <9>;
+               };
+
+               mcspi4_fck: clock-mcspi4-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mcspi4_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <21>;
+               };
+
+               mcspi3_fck: clock-mcspi3-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mcspi3_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <20>;
+               };
+
+               mcspi2_fck: clock-mcspi2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mcspi2_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <19>;
+               };
+
+               mcspi1_fck: clock-mcspi1-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "mcspi1_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <18>;
+               };
+
+               uart2_fck: clock-uart2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "uart2_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <14>;
+               };
+
+               uart1_fck: clock-uart1-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "uart1_fck";
+                       clocks = <&core_48m_fck>;
+                       ti,bit-shift = <13>;
+               };
+
+               hdq_fck: clock-hdq-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "hdq_fck";
+                       clocks = <&core_12m_fck>;
+                       ti,bit-shift = <22>;
+               };
        };
 
        gpt10_fck: gpt10_fck {
                clocks = <&gpt10_gate_fck>, <&gpt10_mux_fck>;
        };
 
-       gpt11_gate_fck: gpt11_gate_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <12>;
-               reg = <0x0a00>;
-       };
-
-       gpt11_mux_fck: gpt11_mux_fck@a40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <7>;
-               reg = <0x0a40>;
-       };
-
        gpt11_fck: gpt11_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clock-div = <1>;
        };
 
-       mmchs2_fck: mmchs2_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <25>;
-       };
-
-       mmchs1_fck: mmchs1_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <24>;
-       };
-
-       i2c3_fck: i2c3_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <17>;
-       };
-
-       i2c2_fck: i2c2_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <16>;
-       };
-
-       i2c1_fck: i2c1_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_96m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <15>;
-       };
-
-       mcbsp5_gate_fck: mcbsp5_gate_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&mcbsp_clks>;
-               ti,bit-shift = <10>;
-               reg = <0x0a00>;
-       };
-
-       mcbsp1_gate_fck: mcbsp1_gate_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&mcbsp_clks>;
-               ti,bit-shift = <9>;
-               reg = <0x0a00>;
-       };
-
        core_48m_fck: core_48m_fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       mcspi4_fck: mcspi4_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <21>;
-       };
-
-       mcspi3_fck: mcspi3_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <20>;
-       };
-
-       mcspi2_fck: mcspi2_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <19>;
-       };
-
-       mcspi1_fck: mcspi1_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <18>;
-       };
-
-       uart2_fck: uart2_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <14>;
-       };
-
-       uart1_fck: uart1_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_48m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <13>;
-       };
-
        core_12m_fck: core_12m_fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       hdq_fck: hdq_fck@a00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_12m_fck>;
-               reg = <0x0a00>;
-               ti,bit-shift = <22>;
-       };
-
        core_l3_ick: core_l3_ick {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       sdrc_ick: sdrc_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&core_l3_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <1>;
+       /* CM_ICLKEN1_CORE */
+       clock@a10 {
+               compatible = "ti,clksel";
+               reg = <0xa10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               sdrc_ick: clock-sdrc-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "sdrc_ick";
+                       clocks = <&core_l3_ick>;
+                       ti,bit-shift = <1>;
+               };
+
+               mmchs2_ick: clock-mmchs2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mmchs2_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <25>;
+               };
+
+               mmchs1_ick: clock-mmchs1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mmchs1_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <24>;
+               };
+
+               hdq_ick: clock-hdq-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "hdq_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <22>;
+               };
+
+               mcspi4_ick: clock-mcspi4-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcspi4_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <21>;
+               };
+
+               mcspi3_ick: clock-mcspi3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcspi3_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <20>;
+               };
+
+               mcspi2_ick: clock-mcspi2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcspi2_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <19>;
+               };
+
+               mcspi1_ick: clock-mcspi1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcspi1_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <18>;
+               };
+
+               i2c3_ick: clock-i2c3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "i2c3_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <17>;
+               };
+
+               i2c2_ick: clock-i2c2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "i2c2_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <16>;
+               };
+
+               i2c1_ick: clock-i2c1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "i2c1_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <15>;
+               };
+
+               uart2_ick: clock-uart2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "uart2_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <14>;
+               };
+
+               uart1_ick: clock-uart1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "uart1_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <13>;
+               };
+
+               gpt11_ick: clock-gpt11-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt11_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <12>;
+               };
+
+               gpt10_ick: clock-gpt10-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt10_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <11>;
+               };
+
+               mcbsp5_ick: clock-mcbsp5-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcbsp5_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <10>;
+               };
+
+               mcbsp1_ick: clock-mcbsp1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcbsp1_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <9>;
+               };
+
+               omapctrl_ick: clock-omapctrl-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "omapctrl_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <6>;
+               };
+
+               aes2_ick: clock-aes2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "aes2_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <28>;
+               };
+
+               sha12_ick: clock-sha12-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "sha12_ick";
+                       clocks = <&core_l4_ick>;
+                       ti,bit-shift = <27>;
+               };
        };
 
        gpmc_fck: gpmc_fck {
                clock-div = <1>;
        };
 
-       mmchs2_ick: mmchs2_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <25>;
-       };
-
-       mmchs1_ick: mmchs1_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <24>;
-       };
-
-       hdq_ick: hdq_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <22>;
-       };
-
-       mcspi4_ick: mcspi4_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <21>;
-       };
-
-       mcspi3_ick: mcspi3_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <20>;
-       };
-
-       mcspi2_ick: mcspi2_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <19>;
-       };
-
-       mcspi1_ick: mcspi1_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <18>;
-       };
-
-       i2c3_ick: i2c3_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <17>;
-       };
-
-       i2c2_ick: i2c2_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <16>;
-       };
-
-       i2c1_ick: i2c1_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <15>;
-       };
-
-       uart2_ick: uart2_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <14>;
-       };
-
-       uart1_ick: uart1_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <13>;
-       };
-
-       gpt11_ick: gpt11_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <12>;
-       };
-
-       gpt10_ick: gpt10_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <11>;
-       };
-
-       mcbsp5_ick: mcbsp5_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <10>;
-       };
-
-       mcbsp1_ick: mcbsp1_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <9>;
-       };
-
-       omapctrl_ick: omapctrl_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <6>;
-       };
-
-       dss_tv_fck: dss_tv_fck@e00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&omap_54m_fck>;
-               reg = <0x0e00>;
-               ti,bit-shift = <2>;
-       };
-
-       dss_96m_fck: dss_96m_fck@e00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&omap_96m_fck>;
-               reg = <0x0e00>;
-               ti,bit-shift = <2>;
-       };
-
-       dss2_alwon_fck: dss2_alwon_fck@e00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&sys_ck>;
-               reg = <0x0e00>;
-               ti,bit-shift = <1>;
+       /* CM_FCLKEN_DSS */
+       clock@e00 {
+               compatible = "ti,clksel";
+               reg = <0xe00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               dss_tv_fck: clock-dss-tv-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "dss_tv_fck";
+                       clocks = <&omap_54m_fck>;
+                       ti,bit-shift = <2>;
+               };
+
+               dss_96m_fck: clock-dss-96m-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "dss_96m_fck";
+                       clocks = <&omap_96m_fck>;
+                       ti,bit-shift = <2>;
+               };
+
+               dss2_alwon_fck: clock-dss2-alwon-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "dss2_alwon_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <1>;
+               };
        };
 
        dummy_ck: dummy_ck {
                clock-frequency = <0>;
        };
 
-       gpt1_gate_fck: gpt1_gate_fck@c00 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <0>;
-               reg = <0x0c00>;
-       };
-
-       gpt1_mux_fck: gpt1_mux_fck@c40 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               reg = <0x0c40>;
+       /* CM_FCLKEN_WKUP */
+       clock@c00 {
+               compatible = "ti,clksel";
+               reg = <0xc00>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               gpt1_gate_fck: clock-gpt1-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt1_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <0>;
+               };
+
+               gpio1_dbck: clock-gpio1-dbck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "gpio1_dbck";
+                       clocks = <&wkup_32k_fck>;
+                       ti,bit-shift = <3>;
+               };
+
+               wdt2_fck: clock-wdt2-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "wdt2_fck";
+                       clocks = <&wkup_32k_fck>;
+                       ti,bit-shift = <5>;
+               };
        };
 
        gpt1_fck: gpt1_fck {
                clocks = <&gpt1_gate_fck>, <&gpt1_mux_fck>;
        };
 
-       aes2_ick: aes2_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               ti,bit-shift = <28>;
-               reg = <0x0a10>;
-       };
-
        wkup_32k_fck: wkup_32k_fck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       gpio1_dbck: gpio1_dbck@c00 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&wkup_32k_fck>;
-               reg = <0x0c00>;
-               ti,bit-shift = <3>;
-       };
-
-       sha12_ick: sha12_ick@a10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&core_l4_ick>;
-               reg = <0x0a10>;
-               ti,bit-shift = <27>;
-       };
-
-       wdt2_fck: wdt2_fck@c00 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&wkup_32k_fck>;
-               reg = <0x0c00>;
-               ti,bit-shift = <5>;
-       };
-
-       wdt2_ick: wdt2_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <5>;
-       };
-
-       wdt1_ick: wdt1_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <4>;
-       };
-
-       gpio1_ick: gpio1_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <3>;
-       };
-
-       omap_32ksync_ick: omap_32ksync_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <2>;
-       };
-
-       gpt12_ick: gpt12_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <1>;
-       };
-
-       gpt1_ick: gpt1_ick@c10 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&wkup_l4_ick>;
-               reg = <0x0c10>;
-               ti,bit-shift = <0>;
+       /* CM_ICLKEN_WKUP */
+       clock@c10 {
+               compatible = "ti,clksel";
+               reg = <0xc10>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               wdt2_ick: clock-wdt2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "wdt2_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <5>;
+               };
+
+               wdt1_ick: clock-wdt1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "wdt1_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <4>;
+               };
+
+               gpio1_ick: clock-gpio1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpio1_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <3>;
+               };
+
+               omap_32ksync_ick: clock-omap-32ksync-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "omap_32ksync_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <2>;
+               };
+
+               gpt12_ick: clock-gpt12-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt12_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <1>;
+               };
+
+               gpt1_ick: clock-gpt1-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt1_ick";
+                       clocks = <&wkup_l4_ick>;
+                       ti,bit-shift = <0>;
+               };
        };
 
        per_96m_fck: per_96m_fck {
                clock-div = <1>;
        };
 
-       uart3_fck: uart3_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&per_48m_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <11>;
-       };
-
-       gpt2_gate_fck: gpt2_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <3>;
+       /* CM_FCLKEN_PER */
+       clock@1000 {
+               compatible = "ti,clksel";
                reg = <0x1000>;
-       };
-
-       gpt2_mux_fck: gpt2_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               uart3_fck: clock-uart3-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "uart3_fck";
+                       clocks = <&per_48m_fck>;
+                       ti,bit-shift = <11>;
+               };
+
+               gpt2_gate_fck: clock-gpt2-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt2_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <3>;
+               };
+
+               gpt3_gate_fck: clock-gpt3-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt3_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <4>;
+               };
+
+               gpt4_gate_fck: clock-gpt4-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt4_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <5>;
+               };
+
+               gpt5_gate_fck: clock-gpt5-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt5_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <6>;
+               };
+
+               gpt6_gate_fck: clock-gpt6-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt6_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <7>;
+               };
+
+               gpt7_gate_fck: clock-gpt7-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt7_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <8>;
+               };
+
+               gpt8_gate_fck: clock-gpt8-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt8_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <9>;
+               };
+
+               gpt9_gate_fck: clock-gpt9-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "gpt9_gate_fck";
+                       clocks = <&sys_ck>;
+                       ti,bit-shift = <10>;
+               };
+
+               gpio6_dbck: clock-gpio6-dbck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "gpio6_dbck";
+                       clocks = <&per_32k_alwon_fck>;
+                       ti,bit-shift = <17>;
+               };
+
+               gpio5_dbck: clock-gpio5-dbck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "gpio5_dbck";
+                       clocks = <&per_32k_alwon_fck>;
+                       ti,bit-shift = <16>;
+               };
+
+               gpio4_dbck: clock-gpio4-dbck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "gpio4_dbck";
+                       clocks = <&per_32k_alwon_fck>;
+                       ti,bit-shift = <15>;
+               };
+
+               gpio3_dbck: clock-gpio3-dbck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "gpio3_dbck";
+                       clocks = <&per_32k_alwon_fck>;
+                       ti,bit-shift = <14>;
+               };
+
+               gpio2_dbck: clock-gpio2-dbck {
+                       #clock-cells = <0>;
+                       compatible = "ti,gate-clock";
+                       clock-output-names = "gpio2_dbck";
+                       clocks = <&per_32k_alwon_fck>;
+                       ti,bit-shift = <13>;
+               };
+
+               wdt3_fck: clock-wdt3-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,wait-gate-clock";
+                       clock-output-names = "wdt3_fck";
+                       clocks = <&per_32k_alwon_fck>;
+                       ti,bit-shift = <12>;
+               };
+
+               mcbsp2_gate_fck: clock-mcbsp2-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "mcbsp2_gate_fck";
+                       clocks = <&mcbsp_clks>;
+                       ti,bit-shift = <0>;
+               };
+
+               mcbsp3_gate_fck: clock-mcbsp3-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "mcbsp3_gate_fck";
+                       clocks = <&mcbsp_clks>;
+                       ti,bit-shift = <1>;
+               };
+
+               mcbsp4_gate_fck: clock-mcbsp4-gate-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-gate-clock";
+                       clock-output-names = "mcbsp4_gate_fck";
+                       clocks = <&mcbsp_clks>;
+                       ti,bit-shift = <2>;
+               };
+       };
+
+       /* CM_CLKSEL_PER */
+       clock@1040 {
+               compatible = "ti,clksel";
                reg = <0x1040>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               gpt2_mux_fck: clock-gpt2-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt2_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+               };
+
+               gpt3_mux_fck: clock-gpt3-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt3_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <1>;
+               };
+
+               gpt4_mux_fck: clock-gpt4-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt4_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <2>;
+               };
+
+               gpt5_mux_fck: clock-gpt5-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt5_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <3>;
+               };
+
+               gpt6_mux_fck: clock-gpt6-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt6_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <4>;
+               };
+
+               gpt7_mux_fck: clock-gpt7-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt7_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <5>;
+               };
+
+               gpt8_mux_fck: clock-gpt8-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt8_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <6>;
+               };
+
+               gpt9_mux_fck: clock-gpt9-mux-fck {
+                       #clock-cells = <0>;
+                       compatible = "ti,composite-mux-clock";
+                       clock-output-names = "gpt9_mux_fck";
+                       clocks = <&omap_32k_fck>, <&sys_ck>;
+                       ti,bit-shift = <7>;
+               };
        };
 
        gpt2_fck: gpt2_fck {
                clocks = <&gpt2_gate_fck>, <&gpt2_mux_fck>;
        };
 
-       gpt3_gate_fck: gpt3_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <4>;
-               reg = <0x1000>;
-       };
-
-       gpt3_mux_fck: gpt3_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <1>;
-               reg = <0x1040>;
-       };
-
        gpt3_fck: gpt3_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&gpt3_gate_fck>, <&gpt3_mux_fck>;
        };
 
-       gpt4_gate_fck: gpt4_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <5>;
-               reg = <0x1000>;
-       };
-
-       gpt4_mux_fck: gpt4_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <2>;
-               reg = <0x1040>;
-       };
-
        gpt4_fck: gpt4_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&gpt4_gate_fck>, <&gpt4_mux_fck>;
        };
 
-       gpt5_gate_fck: gpt5_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <6>;
-               reg = <0x1000>;
-       };
-
-       gpt5_mux_fck: gpt5_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <3>;
-               reg = <0x1040>;
-       };
-
        gpt5_fck: gpt5_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&gpt5_gate_fck>, <&gpt5_mux_fck>;
        };
 
-       gpt6_gate_fck: gpt6_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <7>;
-               reg = <0x1000>;
-       };
-
-       gpt6_mux_fck: gpt6_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <4>;
-               reg = <0x1040>;
-       };
-
        gpt6_fck: gpt6_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&gpt6_gate_fck>, <&gpt6_mux_fck>;
        };
 
-       gpt7_gate_fck: gpt7_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <8>;
-               reg = <0x1000>;
-       };
-
-       gpt7_mux_fck: gpt7_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <5>;
-               reg = <0x1040>;
-       };
-
        gpt7_fck: gpt7_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&gpt7_gate_fck>, <&gpt7_mux_fck>;
        };
 
-       gpt8_gate_fck: gpt8_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <9>;
-               reg = <0x1000>;
-       };
-
-       gpt8_mux_fck: gpt8_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <6>;
-               reg = <0x1040>;
-       };
-
        gpt8_fck: gpt8_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clocks = <&gpt8_gate_fck>, <&gpt8_mux_fck>;
        };
 
-       gpt9_gate_fck: gpt9_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&sys_ck>;
-               ti,bit-shift = <10>;
-               reg = <0x1000>;
-       };
-
-       gpt9_mux_fck: gpt9_mux_fck@1040 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-mux-clock";
-               clocks = <&omap_32k_fck>, <&sys_ck>;
-               ti,bit-shift = <7>;
-               reg = <0x1040>;
-       };
-
        gpt9_fck: gpt9_fck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
                clock-div = <1>;
        };
 
-       gpio6_dbck: gpio6_dbck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&per_32k_alwon_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <17>;
-       };
-
-       gpio5_dbck: gpio5_dbck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&per_32k_alwon_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <16>;
-       };
-
-       gpio4_dbck: gpio4_dbck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&per_32k_alwon_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <15>;
-       };
-
-       gpio3_dbck: gpio3_dbck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&per_32k_alwon_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <14>;
-       };
-
-       gpio2_dbck: gpio2_dbck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&per_32k_alwon_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <13>;
-       };
-
-       wdt3_fck: wdt3_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,wait-gate-clock";
-               clocks = <&per_32k_alwon_fck>;
-               reg = <0x1000>;
-               ti,bit-shift = <12>;
-       };
-
        per_l4_ick: per_l4_ick {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
                clock-div = <1>;
        };
 
-       gpio6_ick: gpio6_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <17>;
-       };
-
-       gpio5_ick: gpio5_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <16>;
-       };
-
-       gpio4_ick: gpio4_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <15>;
-       };
-
-       gpio3_ick: gpio3_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <14>;
-       };
-
-       gpio2_ick: gpio2_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <13>;
-       };
-
-       wdt3_ick: wdt3_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <12>;
-       };
-
-       uart3_ick: uart3_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <11>;
-       };
-
-       uart4_ick: uart4_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <18>;
-       };
-
-       gpt9_ick: gpt9_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <10>;
-       };
-
-       gpt8_ick: gpt8_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <9>;
-       };
-
-       gpt7_ick: gpt7_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <8>;
-       };
-
-       gpt6_ick: gpt6_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <7>;
-       };
-
-       gpt5_ick: gpt5_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <6>;
-       };
-
-       gpt4_ick: gpt4_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <5>;
-       };
-
-       gpt3_ick: gpt3_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <4>;
-       };
-
-       gpt2_ick: gpt2_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <3>;
-       };
-
-       mcbsp2_ick: mcbsp2_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <0>;
-       };
-
-       mcbsp3_ick: mcbsp3_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
-               reg = <0x1010>;
-               ti,bit-shift = <1>;
-       };
-
-       mcbsp4_ick: mcbsp4_ick@1010 {
-               #clock-cells = <0>;
-               compatible = "ti,omap3-interface-clock";
-               clocks = <&per_l4_ick>;
+       /* CM_ICLKEN_PER */
+       clock@1010 {
+               compatible = "ti,clksel";
                reg = <0x1010>;
-               ti,bit-shift = <2>;
-       };
-
-       mcbsp2_gate_fck: mcbsp2_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&mcbsp_clks>;
-               ti,bit-shift = <0>;
-               reg = <0x1000>;
-       };
-
-       mcbsp3_gate_fck: mcbsp3_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&mcbsp_clks>;
-               ti,bit-shift = <1>;
-               reg = <0x1000>;
-       };
-
-       mcbsp4_gate_fck: mcbsp4_gate_fck@1000 {
-               #clock-cells = <0>;
-               compatible = "ti,composite-gate-clock";
-               clocks = <&mcbsp_clks>;
-               ti,bit-shift = <2>;
-               reg = <0x1000>;
-       };
-
-       emu_src_mux_ck: emu_src_mux_ck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&sys_ck>, <&emu_core_alwon_ck>, <&emu_per_alwon_ck>, <&emu_mpu_alwon_ck>;
-               reg = <0x1140>;
+               #clock-cells = <2>;
+               #address-cells = <0>;
+
+               gpio6_ick: clock-gpio6-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpio6_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <17>;
+               };
+
+               gpio5_ick: clock-gpio5-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpio5_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <16>;
+               };
+
+               gpio4_ick: clock-gpio4-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpio4_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <15>;
+               };
+
+               gpio3_ick: clock-gpio3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpio3_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <14>;
+               };
+
+               gpio2_ick: clock-gpio2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpio2_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <13>;
+               };
+
+               wdt3_ick: clock-wdt3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "wdt3_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <12>;
+               };
+
+               uart3_ick: clock-uart3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "uart3_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <11>;
+               };
+
+               uart4_ick: clock-uart4-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "uart4_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <18>;
+               };
+
+               gpt9_ick: clock-gpt9-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt9_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <10>;
+               };
+
+               gpt8_ick: clock-gpt8-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt8_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <9>;
+               };
+
+               gpt7_ick: clock-gpt7-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt7_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <8>;
+               };
+
+               gpt6_ick: clock-gpt6-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt6_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <7>;
+               };
+
+               gpt5_ick: clock-gpt5-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt5_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <6>;
+               };
+
+               gpt4_ick: clock-gpt4-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt4_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <5>;
+               };
+
+               gpt3_ick: clock-gpt3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt3_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <4>;
+               };
+
+               gpt2_ick: clock-gpt2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "gpt2_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <3>;
+               };
+
+               mcbsp2_ick: clock-mcbsp2-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcbsp2_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <0>;
+               };
+
+               mcbsp3_ick: clock-mcbsp3-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcbsp3_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <1>;
+               };
+
+               mcbsp4_ick: clock-mcbsp4-ick {
+                       #clock-cells = <0>;
+                       compatible = "ti,omap3-interface-clock";
+                       clock-output-names = "mcbsp4_ick";
+                       clocks = <&per_l4_ick>;
+                       ti,bit-shift = <2>;
+               };
        };
 
        emu_src_ck: emu_src_ck {
                clocks = <&emu_src_mux_ck>;
        };
 
-       pclk_fck: pclk_fck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&emu_src_ck>;
-               ti,bit-shift = <8>;
-               ti,max-div = <7>;
-               reg = <0x1140>;
-               ti,index-starts-at-one;
-       };
-
-       pclkx2_fck: pclkx2_fck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&emu_src_ck>;
-               ti,bit-shift = <6>;
-               ti,max-div = <3>;
-               reg = <0x1140>;
-               ti,index-starts-at-one;
-       };
-
-       atclk_fck: atclk_fck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&emu_src_ck>;
-               ti,bit-shift = <4>;
-               ti,max-div = <3>;
-               reg = <0x1140>;
-               ti,index-starts-at-one;
-       };
-
-       traceclk_src_fck: traceclk_src_fck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&sys_ck>, <&emu_core_alwon_ck>, <&emu_per_alwon_ck>, <&emu_mpu_alwon_ck>;
-               ti,bit-shift = <2>;
-               reg = <0x1140>;
-       };
-
-       traceclk_fck: traceclk_fck@1140 {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&traceclk_src_fck>;
-               ti,bit-shift = <11>;
-               ti,max-div = <7>;
-               reg = <0x1140>;
-               ti,index-starts-at-one;
-       };
-
        secure_32k_fck: secure_32k_fck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
index 609a8de..518652a 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@1 {
+               ethernet: ethernet@1 {
                        compatible = "usb424,ec00";
                        reg = <1>;
                };
index 3929786..581e088 100644 (file)
@@ -8,6 +8,7 @@
        bandgap_fclk: bandgap_fclk@1888 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "bandgap_fclk";
                clocks = <&sys_32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x1888>;
index 0f41714..d9362fe 100644 (file)
@@ -8,6 +8,7 @@
        div_ts_ck: div_ts_ck@1888 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "div_ts_ck";
                clocks = <&l4_wkup_clk_mux_ck>;
                ti,bit-shift = <24>;
                reg = <0x1888>;
@@ -17,6 +18,7 @@
        bandgap_ts_fclk: bandgap_ts_fclk@1888 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "bandgap_ts_fclk";
                clocks = <&div_ts_ck>;
                ti,bit-shift = <8>;
                reg = <0x1888>;
index 1f1c04d..8df73d2 100644 (file)
@@ -8,18 +8,21 @@
        extalt_clkin_ck: extalt_clkin_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "extalt_clkin_ck";
                clock-frequency = <59000000>;
        };
 
        pad_clks_src_ck: pad_clks_src_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "pad_clks_src_ck";
                clock-frequency = <12000000>;
        };
 
        pad_clks_ck: pad_clks_ck@108 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "pad_clks_ck";
                clocks = <&pad_clks_src_ck>;
                ti,bit-shift = <8>;
                reg = <0x0108>;
        pad_slimbus_core_clks_ck: pad_slimbus_core_clks_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "pad_slimbus_core_clks_ck";
                clock-frequency = <12000000>;
        };
 
        secure_32k_clk_src_ck: secure_32k_clk_src_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "secure_32k_clk_src_ck";
                clock-frequency = <32768>;
        };
 
        slimbus_src_clk: slimbus_src_clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "slimbus_src_clk";
                clock-frequency = <12000000>;
        };
 
        slimbus_clk: slimbus_clk@108 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "slimbus_clk";
                clocks = <&slimbus_src_clk>;
                ti,bit-shift = <10>;
                reg = <0x0108>;
        sys_32k_ck: sys_32k_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "sys_32k_ck";
                clock-frequency = <32768>;
        };
 
        virt_12000000_ck: virt_12000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_12000000_ck";
                clock-frequency = <12000000>;
        };
 
        virt_13000000_ck: virt_13000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_13000000_ck";
                clock-frequency = <13000000>;
        };
 
        virt_16800000_ck: virt_16800000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_16800000_ck";
                clock-frequency = <16800000>;
        };
 
        virt_19200000_ck: virt_19200000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_19200000_ck";
                clock-frequency = <19200000>;
        };
 
        virt_26000000_ck: virt_26000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_26000000_ck";
                clock-frequency = <26000000>;
        };
 
        virt_27000000_ck: virt_27000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_27000000_ck";
                clock-frequency = <27000000>;
        };
 
        virt_38400000_ck: virt_38400000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_38400000_ck";
                clock-frequency = <38400000>;
        };
 
        tie_low_clock_ck: tie_low_clock_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "tie_low_clock_ck";
                clock-frequency = <0>;
        };
 
        utmi_phy_clkout_ck: utmi_phy_clkout_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "utmi_phy_clkout_ck";
                clock-frequency = <60000000>;
        };
 
        xclk60mhsp1_ck: xclk60mhsp1_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "xclk60mhsp1_ck";
                clock-frequency = <60000000>;
        };
 
        xclk60mhsp2_ck: xclk60mhsp2_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "xclk60mhsp2_ck";
                clock-frequency = <60000000>;
        };
 
        xclk60motg_ck: xclk60motg_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "xclk60motg_ck";
                clock-frequency = <60000000>;
        };
 
        dpll_abe_ck: dpll_abe_ck@1e0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-m4xen-clock";
+               clock-output-names = "dpll_abe_ck";
                clocks = <&abe_dpll_refclk_mux_ck>, <&abe_dpll_bypass_clk_mux_ck>;
                reg = <0x01e0>, <0x01e4>, <0x01ec>, <0x01e8>;
        };
        dpll_abe_x2_ck: dpll_abe_x2_ck@1f0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_abe_x2_ck";
                clocks = <&dpll_abe_ck>;
                reg = <0x01f0>;
        };
        dpll_abe_m2x2_ck: dpll_abe_m2x2_ck@1f0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m2x2_ck";
                clocks = <&dpll_abe_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        abe_24m_fclk: abe_24m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "abe_24m_fclk";
                clocks = <&dpll_abe_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <8>;
        abe_clk: abe_clk@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_clk";
                clocks = <&dpll_abe_m2x2_ck>;
                ti,max-div = <4>;
                reg = <0x0108>;
        dpll_abe_m3x2_ck: dpll_abe_m3x2_ck@1f4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m3x2_ck";
                clocks = <&dpll_abe_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        core_hsd_byp_clk_mux_ck: core_hsd_byp_clk_mux_ck@12c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "core_hsd_byp_clk_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_abe_m3x2_ck>;
                ti,bit-shift = <23>;
                reg = <0x012c>;
        dpll_core_ck: dpll_core_ck@120 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-core-clock";
+               clock-output-names = "dpll_core_ck";
                clocks = <&sys_clkin_ck>, <&core_hsd_byp_clk_mux_ck>;
                reg = <0x0120>, <0x0124>, <0x012c>, <0x0128>;
        };
        dpll_core_x2_ck: dpll_core_x2_ck {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_core_x2_ck";
                clocks = <&dpll_core_ck>;
        };
 
        dpll_core_m6x2_ck: dpll_core_m6x2_ck@140 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m6x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_core_m2_ck: dpll_core_m2_ck@130 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m2_ck";
                clocks = <&dpll_core_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        ddrphy_ck: ddrphy_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "ddrphy_ck";
                clocks = <&dpll_core_m2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        dpll_core_m5x2_ck: dpll_core_m5x2_ck@13c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m5x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        div_core_ck: div_core_ck@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "div_core_ck";
                clocks = <&dpll_core_m5x2_ck>;
                reg = <0x0100>;
                ti,max-div = <2>;
        div_iva_hs_clk: div_iva_hs_clk@1dc {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "div_iva_hs_clk";
                clocks = <&dpll_core_m5x2_ck>;
                ti,max-div = <4>;
                reg = <0x01dc>;
        div_mpu_hs_clk: div_mpu_hs_clk@19c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "div_mpu_hs_clk";
                clocks = <&dpll_core_m5x2_ck>;
                ti,max-div = <4>;
                reg = <0x019c>;
        dpll_core_m4x2_ck: dpll_core_m4x2_ck@138 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m4x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dll_clk_div_ck: dll_clk_div_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dll_clk_div_ck";
                clocks = <&dpll_core_m4x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        dpll_abe_m2_ck: dpll_abe_m2_ck@1f0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m2_ck";
                clocks = <&dpll_abe_ck>;
                ti,max-div = <31>;
                reg = <0x01f0>;
        dpll_core_m3x2_gate_ck: dpll_core_m3x2_gate_ck@134 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "dpll_core_m3x2_gate_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0134>;
        dpll_core_m3x2_div_ck: dpll_core_m3x2_div_ck@134 {
                #clock-cells = <0>;
                compatible = "ti,composite-divider-clock";
+               clock-output-names = "dpll_core_m3x2_div_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0134>;
        dpll_core_m3x2_ck: dpll_core_m3x2_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "dpll_core_m3x2_ck";
                clocks = <&dpll_core_m3x2_gate_ck>, <&dpll_core_m3x2_div_ck>;
        };
 
        dpll_core_m7x2_ck: dpll_core_m7x2_ck@144 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m7x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        iva_hsd_byp_clk_mux_ck: iva_hsd_byp_clk_mux_ck@1ac {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "iva_hsd_byp_clk_mux_ck";
                clocks = <&sys_clkin_ck>, <&div_iva_hs_clk>;
                ti,bit-shift = <23>;
                reg = <0x01ac>;
        dpll_iva_ck: dpll_iva_ck@1a0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_iva_ck";
                clocks = <&sys_clkin_ck>, <&iva_hsd_byp_clk_mux_ck>;
                reg = <0x01a0>, <0x01a4>, <0x01ac>, <0x01a8>;
                assigned-clocks = <&dpll_iva_ck>;
        dpll_iva_x2_ck: dpll_iva_x2_ck {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_iva_x2_ck";
                clocks = <&dpll_iva_ck>;
        };
 
        dpll_iva_m4x2_ck: dpll_iva_m4x2_ck@1b8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_iva_m4x2_ck";
                clocks = <&dpll_iva_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_iva_m5x2_ck: dpll_iva_m5x2_ck@1bc {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_iva_m5x2_ck";
                clocks = <&dpll_iva_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_mpu_ck: dpll_mpu_ck@160 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_mpu_ck";
                clocks = <&sys_clkin_ck>, <&div_mpu_hs_clk>;
                reg = <0x0160>, <0x0164>, <0x016c>, <0x0168>;
        };
        dpll_mpu_m2_ck: dpll_mpu_m2_ck@170 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_mpu_m2_ck";
                clocks = <&dpll_mpu_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        per_hs_clk_div_ck: per_hs_clk_div_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "per_hs_clk_div_ck";
                clocks = <&dpll_abe_m3x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        usb_hs_clk_div_ck: usb_hs_clk_div_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "usb_hs_clk_div_ck";
                clocks = <&dpll_abe_m3x2_ck>;
                clock-mult = <1>;
                clock-div = <3>;
        l3_div_ck: l3_div_ck@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3_div_ck";
                clocks = <&div_core_ck>;
                ti,bit-shift = <4>;
                ti,max-div = <2>;
        l4_div_ck: l4_div_ck@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l4_div_ck";
                clocks = <&l3_div_ck>;
                ti,bit-shift = <8>;
                ti,max-div = <2>;
        lp_clk_div_ck: lp_clk_div_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "lp_clk_div_ck";
                clocks = <&dpll_abe_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <16>;
        mpu_periphclk: mpu_periphclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mpu_periphclk";
                clocks = <&dpll_mpu_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        ocp_abe_iclk: ocp_abe_iclk@528 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "ocp_abe_iclk";
                clocks = <&abe_clkctrl OMAP4_AESS_CLKCTRL 24>;
                ti,bit-shift = <24>;
                reg = <0x0528>;
        per_abe_24m_fclk: per_abe_24m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "per_abe_24m_fclk";
                clocks = <&dpll_abe_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        dummy_ck: dummy_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "dummy_ck";
                clock-frequency = <0>;
        };
 };
        sys_clkin_ck: sys_clkin_ck@110 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sys_clkin_ck";
                clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>;
                reg = <0x0110>;
                ti,index-starts-at-one;
        abe_dpll_bypass_clk_mux_ck: abe_dpll_bypass_clk_mux_ck@108 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_bypass_clk_mux_ck";
                clocks = <&sys_clkin_ck>, <&sys_32k_ck>;
                ti,bit-shift = <24>;
                reg = <0x0108>;
        abe_dpll_refclk_mux_ck: abe_dpll_refclk_mux_ck@10c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_refclk_mux_ck";
                clocks = <&sys_clkin_ck>, <&sys_32k_ck>;
                reg = <0x010c>;
        };
        dbgclk_mux_ck: dbgclk_mux_ck {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dbgclk_mux_ck";
                clocks = <&sys_clkin_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        l4_wkup_clk_mux_ck: l4_wkup_clk_mux_ck@108 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "l4_wkup_clk_mux_ck";
                clocks = <&sys_clkin_ck>, <&lp_clk_div_ck>;
                reg = <0x0108>;
        };
        syc_clk_div_ck: syc_clk_div_ck@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "syc_clk_div_ck";
                clocks = <&sys_clkin_ck>;
                reg = <0x0100>;
                ti,max-div = <2>;
        usim_ck: usim_ck@1858 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "usim_ck";
                clocks = <&dpll_per_m4x2_ck>;
                ti,bit-shift = <24>;
                reg = <0x1858>;
        usim_fclk: usim_fclk@1858 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usim_fclk";
                clocks = <&usim_ck>;
                ti,bit-shift = <8>;
                reg = <0x1858>;
        trace_clk_div_ck: trace_clk_div_ck {
                #clock-cells = <0>;
                compatible = "ti,clkdm-gate-clock";
+               clock-output-names = "trace_clk_div_ck";
                clocks = <&emu_sys_clkctrl OMAP4_DEBUGSS_CLKCTRL 24>;
        };
 };
 &prm_clockdomains {
        emu_sys_clkdm: emu_sys_clkdm {
                compatible = "ti,clockdomain";
+               clock-output-names = "emu_sys_clkdm";
                clocks = <&trace_clk_div_ck>;
        };
 };
        per_hsd_byp_clk_mux_ck: per_hsd_byp_clk_mux_ck@14c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "per_hsd_byp_clk_mux_ck";
                clocks = <&sys_clkin_ck>, <&per_hs_clk_div_ck>;
                ti,bit-shift = <23>;
                reg = <0x014c>;
        dpll_per_ck: dpll_per_ck@140 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_per_ck";
                clocks = <&sys_clkin_ck>, <&per_hsd_byp_clk_mux_ck>;
                reg = <0x0140>, <0x0144>, <0x014c>, <0x0148>;
        };
        dpll_per_m2_ck: dpll_per_m2_ck@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2_ck";
                clocks = <&dpll_per_ck>;
                ti,max-div = <31>;
                reg = <0x0150>;
        dpll_per_x2_ck: dpll_per_x2_ck@150 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_per_x2_ck";
                clocks = <&dpll_per_ck>;
                reg = <0x0150>;
        };
        dpll_per_m2x2_ck: dpll_per_m2x2_ck@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_per_m3x2_gate_ck: dpll_per_m3x2_gate_ck@154 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "dpll_per_m3x2_gate_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0154>;
        dpll_per_m3x2_div_ck: dpll_per_m3x2_div_ck@154 {
                #clock-cells = <0>;
                compatible = "ti,composite-divider-clock";
+               clock-output-names = "dpll_per_m3x2_div_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0154>;
        dpll_per_m3x2_ck: dpll_per_m3x2_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "dpll_per_m3x2_ck";
                clocks = <&dpll_per_m3x2_gate_ck>, <&dpll_per_m3x2_div_ck>;
        };
 
        dpll_per_m4x2_ck: dpll_per_m4x2_ck@158 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m4x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_per_m5x2_ck: dpll_per_m5x2_ck@15c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m5x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_per_m6x2_ck: dpll_per_m6x2_ck@160 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m6x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_per_m7x2_ck: dpll_per_m7x2_ck@164 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m7x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                ti,autoidle-shift = <8>;
        dpll_usb_ck: dpll_usb_ck@180 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-j-type-clock";
+               clock-output-names = "dpll_usb_ck";
                clocks = <&sys_clkin_ck>, <&usb_hs_clk_div_ck>;
                reg = <0x0180>, <0x0184>, <0x018c>, <0x0188>;
        };
        dpll_usb_clkdcoldo_ck: dpll_usb_clkdcoldo_ck@1b4 {
                #clock-cells = <0>;
                compatible = "ti,fixed-factor-clock";
+               clock-output-names = "dpll_usb_clkdcoldo_ck";
                clocks = <&dpll_usb_ck>;
                ti,clock-div = <1>;
                ti,autoidle-shift = <8>;
        dpll_usb_m2_ck: dpll_usb_m2_ck@190 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_usb_m2_ck";
                clocks = <&dpll_usb_ck>;
                ti,max-div = <127>;
                ti,autoidle-shift = <8>;
        ducati_clk_mux_ck: ducati_clk_mux_ck@100 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "ducati_clk_mux_ck";
                clocks = <&div_core_ck>, <&dpll_per_m6x2_ck>;
                reg = <0x0100>;
        };
        func_12m_fclk: func_12m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_12m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <16>;
        func_24m_clk: func_24m_clk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_24m_clk";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        func_24mc_fclk: func_24mc_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_24mc_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <8>;
        func_48m_fclk: func_48m_fclk@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "func_48m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                reg = <0x0108>;
                ti,dividers = <4>, <8>;
        func_48mc_fclk: func_48mc_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_48mc_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        func_64m_fclk: func_64m_fclk@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "func_64m_fclk";
                clocks = <&dpll_per_m4x2_ck>;
                reg = <0x0108>;
                ti,dividers = <2>, <4>;
        func_96m_fclk: func_96m_fclk@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "func_96m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                reg = <0x0108>;
                ti,dividers = <2>, <4>;
        init_60m_fclk: init_60m_fclk@104 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "init_60m_fclk";
                clocks = <&dpll_usb_m2_ck>;
                reg = <0x0104>;
                ti,dividers = <1>, <8>;
        per_abe_nc_fclk: per_abe_nc_fclk@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "per_abe_nc_fclk";
                clocks = <&dpll_abe_m2_ck>;
                reg = <0x0108>;
                ti,max-div = <2>;
        usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy_cm_clk32k";
                clocks = <&sys_32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x0640>;
 &cm2_clockdomains {
        l3_init_clkdm: l3_init_clkdm {
                compatible = "ti,clockdomain";
+               clock-output-names = "l3_init_clkdm";
                clocks = <&dpll_usb_ck>;
        };
 };
        auxclk0_src_gate_ck: auxclk0_src_gate_ck@310 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk0_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0310>;
        auxclk0_src_mux_ck: auxclk0_src_mux_ck@310 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk0_src_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0310>;
        auxclk0_src_ck: auxclk0_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk0_src_ck";
                clocks = <&auxclk0_src_gate_ck>, <&auxclk0_src_mux_ck>;
        };
 
        auxclk0_ck: auxclk0_ck@310 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk0_ck";
                clocks = <&auxclk0_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk1_src_gate_ck: auxclk1_src_gate_ck@314 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk1_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0314>;
        auxclk1_src_mux_ck: auxclk1_src_mux_ck@314 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk1_src_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0314>;
        auxclk1_src_ck: auxclk1_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk1_src_ck";
                clocks = <&auxclk1_src_gate_ck>, <&auxclk1_src_mux_ck>;
        };
 
        auxclk1_ck: auxclk1_ck@314 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk1_ck";
                clocks = <&auxclk1_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk2_src_gate_ck: auxclk2_src_gate_ck@318 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk2_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0318>;
        auxclk2_src_mux_ck: auxclk2_src_mux_ck@318 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk2_src_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0318>;
        auxclk2_src_ck: auxclk2_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk2_src_ck";
                clocks = <&auxclk2_src_gate_ck>, <&auxclk2_src_mux_ck>;
        };
 
        auxclk2_ck: auxclk2_ck@318 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk2_ck";
                clocks = <&auxclk2_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk3_src_gate_ck: auxclk3_src_gate_ck@31c {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk3_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x031c>;
        auxclk3_src_mux_ck: auxclk3_src_mux_ck@31c {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk3_src_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x031c>;
        auxclk3_src_ck: auxclk3_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk3_src_ck";
                clocks = <&auxclk3_src_gate_ck>, <&auxclk3_src_mux_ck>;
        };
 
        auxclk3_ck: auxclk3_ck@31c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk3_ck";
                clocks = <&auxclk3_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk4_src_gate_ck: auxclk4_src_gate_ck@320 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk4_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0320>;
        auxclk4_src_mux_ck: auxclk4_src_mux_ck@320 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk4_src_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0320>;
        auxclk4_src_ck: auxclk4_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk4_src_ck";
                clocks = <&auxclk4_src_gate_ck>, <&auxclk4_src_mux_ck>;
        };
 
        auxclk4_ck: auxclk4_ck@320 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk4_ck";
                clocks = <&auxclk4_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk5_src_gate_ck: auxclk5_src_gate_ck@324 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk5_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0324>;
        auxclk5_src_mux_ck: auxclk5_src_mux_ck@324 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk5_src_mux_ck";
                clocks = <&sys_clkin_ck>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0324>;
        auxclk5_src_ck: auxclk5_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk5_src_ck";
                clocks = <&auxclk5_src_gate_ck>, <&auxclk5_src_mux_ck>;
        };
 
        auxclk5_ck: auxclk5_ck@324 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk5_ck";
                clocks = <&auxclk5_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclkreq0_ck: auxclkreq0_ck@210 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq0_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>, <&auxclk5_ck>;
                ti,bit-shift = <2>;
                reg = <0x0210>;
        auxclkreq1_ck: auxclkreq1_ck@214 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq1_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>, <&auxclk5_ck>;
                ti,bit-shift = <2>;
                reg = <0x0214>;
        auxclkreq2_ck: auxclkreq2_ck@218 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq2_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>, <&auxclk5_ck>;
                ti,bit-shift = <2>;
                reg = <0x0218>;
        auxclkreq3_ck: auxclkreq3_ck@21c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq3_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>, <&auxclk5_ck>;
                ti,bit-shift = <2>;
                reg = <0x021c>;
        auxclkreq4_ck: auxclkreq4_ck@220 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq4_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>, <&auxclk5_ck>;
                ti,bit-shift = <2>;
                reg = <0x0220>;
        auxclkreq5_ck: auxclkreq5_ck@224 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq5_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>, <&auxclk5_ck>;
                ti,bit-shift = <2>;
                reg = <0x0224>;
 &cm1 {
        mpuss_cm: mpuss_cm@300 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "mpuss_cm";
                reg = <0x300 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                mpuss_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "mpuss_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        tesla_cm: tesla_cm@400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "tesla_cm";
                reg = <0x400 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                tesla_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "tesla_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        abe_cm: abe_cm@500 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "abe_cm";
                reg = <0x500 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                abe_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "abe_clkctrl";
                        reg = <0x20 0x6c>;
                        #clock-cells = <2>;
                };
 &cm2 {
        l4_ao_cm: l4_ao_cm@600 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_ao_cm";
                reg = <0x600 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l4_ao_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_ao_clkctrl";
                        reg = <0x20 0x1c>;
                        #clock-cells = <2>;
                };
 
        l3_1_cm: l3_1_cm@700 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_1_cm";
                reg = <0x700 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_1_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_1_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3_2_cm: l3_2_cm@800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_2_cm";
                reg = <0x800 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_2_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_2_clkctrl";
                        reg = <0x20 0x14>;
                        #clock-cells = <2>;
                };
 
        ducati_cm: ducati_cm@900 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "ducati_cm";
                reg = <0x900 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                ducati_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "ducati_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3_dma_cm: l3_dma_cm@a00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_dma_cm";
                reg = <0xa00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_dma_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_dma_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3_emif_cm: l3_emif_cm@b00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_emif_cm";
                reg = <0xb00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_emif_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_emif_clkctrl";
                        reg = <0x20 0x1c>;
                        #clock-cells = <2>;
                };
 
        d2d_cm: d2d_cm@c00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "d2d_cm";
                reg = <0xc00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                d2d_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "d2d_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l4_cfg_cm: l4_cfg_cm@d00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_cfg_cm";
                reg = <0xd00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l4_cfg_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_cfg_clkctrl";
                        reg = <0x20 0x14>;
                        #clock-cells = <2>;
                };
 
        l3_instr_cm: l3_instr_cm@e00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_instr_cm";
                reg = <0xe00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_instr_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_instr_clkctrl";
                        reg = <0x20 0x24>;
                        #clock-cells = <2>;
                };
 
        ivahd_cm: ivahd_cm@f00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "ivahd_cm";
                reg = <0xf00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                ivahd_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "ivahd_clkctrl";
                        reg = <0x20 0xc>;
                        #clock-cells = <2>;
                };
 
        iss_cm: iss_cm@1000 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "iss_cm";
                reg = <0x1000 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                iss_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "iss_clkctrl";
                        reg = <0x20 0xc>;
                        #clock-cells = <2>;
                };
 
        l3_dss_cm: l3_dss_cm@1100 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_dss_cm";
                reg = <0x1100 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_dss_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_dss_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3_gfx_cm: l3_gfx_cm@1200 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_gfx_cm";
                reg = <0x1200 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_gfx_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_gfx_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3_init_cm: l3_init_cm@1300 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3_init_cm";
                reg = <0x1300 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3_init_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3_init_clkctrl";
                        reg = <0x20 0xc4>;
                        #clock-cells = <2>;
                };
        };
 
-       l4_per_cm: l4_per_cm@1400 {
+       l4_per_cm: clock@1400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_per_cm";
                reg = <0x1400 0x200>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1400 0x200>;
 
                l4_per_clkctrl: clock@20 {
-                       compatible = "ti,clkctrl-l4-per", "ti,clkctrl";
+                       compatible = "ti,clkctrl";
+                       clock-output-names = "l4_per_clkctrl";
                        reg = <0x20 0x144>;
                        #clock-cells = <2>;
                };
 
                l4_secure_clkctrl: clock@1a0 {
-                       compatible = "ti,clkctrl-l4-secure", "ti,clkctrl";
+                       compatible = "ti,clkctrl";
+                       clock-output-names = "l4_secure_clkctrl";
                        reg = <0x1a0 0x3c>;
                        #clock-cells = <2>;
                };
 &prm {
        l4_wkup_cm: l4_wkup_cm@1800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4_wkup_cm";
                reg = <0x1800 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l4_wkup_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4_wkup_clkctrl";
                        reg = <0x20 0x5c>;
                        #clock-cells = <2>;
                };
 
        emu_sys_cm: emu_sys_cm@1a00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "emu_sys_cm";
                reg = <0x1a00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                emu_sys_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "emu_sys_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
index 76e499d..3851120 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               ethernet: usbether@3 {
+               ethernet: ethernet@3 {
                        compatible = "usb424,7500";
                        reg = <3>;
                };
index 51d5fca..453da9f 100644 (file)
                #size-cells = <0>;
        };
 
-       ethernet: usbether@3 {
+       ethernet: ethernet@3 {
                compatible = "usb424,9730";
                reg = <3>;
        };
index 42f2c44..5cf3b0e 100644 (file)
@@ -8,12 +8,14 @@
        pad_clks_src_ck: pad_clks_src_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "pad_clks_src_ck";
                clock-frequency = <12000000>;
        };
 
        pad_clks_ck: pad_clks_ck@108 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "pad_clks_ck";
                clocks = <&pad_clks_src_ck>;
                ti,bit-shift = <8>;
                reg = <0x0108>;
        secure_32k_clk_src_ck: secure_32k_clk_src_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "secure_32k_clk_src_ck";
                clock-frequency = <32768>;
        };
 
        slimbus_src_clk: slimbus_src_clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "slimbus_src_clk";
                clock-frequency = <12000000>;
        };
 
        slimbus_clk: slimbus_clk@108 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "slimbus_clk";
                clocks = <&slimbus_src_clk>;
                ti,bit-shift = <10>;
                reg = <0x0108>;
        sys_32k_ck: sys_32k_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "sys_32k_ck";
                clock-frequency = <32768>;
        };
 
        virt_12000000_ck: virt_12000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_12000000_ck";
                clock-frequency = <12000000>;
        };
 
        virt_13000000_ck: virt_13000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_13000000_ck";
                clock-frequency = <13000000>;
        };
 
        virt_16800000_ck: virt_16800000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_16800000_ck";
                clock-frequency = <16800000>;
        };
 
        virt_19200000_ck: virt_19200000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_19200000_ck";
                clock-frequency = <19200000>;
        };
 
        virt_26000000_ck: virt_26000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_26000000_ck";
                clock-frequency = <26000000>;
        };
 
        virt_27000000_ck: virt_27000000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_27000000_ck";
                clock-frequency = <27000000>;
        };
 
        virt_38400000_ck: virt_38400000_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "virt_38400000_ck";
                clock-frequency = <38400000>;
        };
 
        xclk60mhsp1_ck: xclk60mhsp1_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "xclk60mhsp1_ck";
                clock-frequency = <60000000>;
        };
 
        xclk60mhsp2_ck: xclk60mhsp2_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "xclk60mhsp2_ck";
                clock-frequency = <60000000>;
        };
 
        dpll_abe_ck: dpll_abe_ck@1e0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-m4xen-clock";
+               clock-output-names = "dpll_abe_ck";
                clocks = <&abe_dpll_clk_mux>, <&abe_dpll_bypass_clk_mux>;
                reg = <0x01e0>, <0x01e4>, <0x01ec>, <0x01e8>;
        };
        dpll_abe_x2_ck: dpll_abe_x2_ck {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_abe_x2_ck";
                clocks = <&dpll_abe_ck>;
        };
 
        dpll_abe_m2x2_ck: dpll_abe_m2x2_ck@1f0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m2x2_ck";
                clocks = <&dpll_abe_x2_ck>;
                ti,max-div = <31>;
                reg = <0x01f0>;
        abe_24m_fclk: abe_24m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "abe_24m_fclk";
                clocks = <&dpll_abe_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <8>;
        abe_clk: abe_clk@108 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_clk";
                clocks = <&dpll_abe_m2x2_ck>;
                ti,max-div = <4>;
                reg = <0x0108>;
        abe_iclk: abe_iclk@528 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "abe_iclk";
                clocks = <&aess_fclk>;
                ti,bit-shift = <24>;
                reg = <0x0528>;
        abe_lp_clk_div: abe_lp_clk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "abe_lp_clk_div";
                clocks = <&dpll_abe_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <16>;
        dpll_abe_m3x2_ck: dpll_abe_m3x2_ck@1f4 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_abe_m3x2_ck";
                clocks = <&dpll_abe_x2_ck>;
                ti,max-div = <31>;
                reg = <0x01f4>;
        dpll_core_byp_mux: dpll_core_byp_mux@12c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_core_byp_mux";
                clocks = <&sys_clkin>, <&dpll_abe_m3x2_ck>;
                ti,bit-shift = <23>;
                reg = <0x012c>;
        dpll_core_ck: dpll_core_ck@120 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-core-clock";
+               clock-output-names = "dpll_core_ck";
                clocks = <&sys_clkin>, <&dpll_core_byp_mux>;
                reg = <0x0120>, <0x0124>, <0x012c>, <0x0128>;
        };
        dpll_core_x2_ck: dpll_core_x2_ck {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_core_x2_ck";
                clocks = <&dpll_core_ck>;
        };
 
        dpll_core_h21x2_ck: dpll_core_h21x2_ck@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h21x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0150>;
        c2c_fclk: c2c_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "c2c_fclk";
                clocks = <&dpll_core_h21x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        c2c_iclk: c2c_iclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "c2c_iclk";
                clocks = <&c2c_fclk>;
                clock-mult = <1>;
                clock-div = <2>;
        dpll_core_h11x2_ck: dpll_core_h11x2_ck@138 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h11x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0138>;
        dpll_core_h12x2_ck: dpll_core_h12x2_ck@13c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h12x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x013c>;
        dpll_core_h13x2_ck: dpll_core_h13x2_ck@140 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h13x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0140>;
        dpll_core_h14x2_ck: dpll_core_h14x2_ck@144 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h14x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0144>;
        dpll_core_h22x2_ck: dpll_core_h22x2_ck@154 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h22x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0154>;
        dpll_core_h23x2_ck: dpll_core_h23x2_ck@158 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h23x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0158>;
        dpll_core_h24x2_ck: dpll_core_h24x2_ck@15c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_h24x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <63>;
                reg = <0x015c>;
        dpll_core_m2_ck: dpll_core_m2_ck@130 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m2_ck";
                clocks = <&dpll_core_ck>;
                ti,max-div = <31>;
                reg = <0x0130>;
        dpll_core_m3x2_ck: dpll_core_m3x2_ck@134 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_core_m3x2_ck";
                clocks = <&dpll_core_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0134>;
        iva_dpll_hs_clk_div: iva_dpll_hs_clk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "iva_dpll_hs_clk_div";
                clocks = <&dpll_core_h12x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        dpll_iva_byp_mux: dpll_iva_byp_mux@1ac {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_iva_byp_mux";
                clocks = <&sys_clkin>, <&iva_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x01ac>;
        dpll_iva_ck: dpll_iva_ck@1a0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_iva_ck";
                clocks = <&sys_clkin>, <&dpll_iva_byp_mux>;
                reg = <0x01a0>, <0x01a4>, <0x01ac>, <0x01a8>;
                assigned-clocks = <&dpll_iva_ck>;
        dpll_iva_x2_ck: dpll_iva_x2_ck {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_iva_x2_ck";
                clocks = <&dpll_iva_ck>;
        };
 
        dpll_iva_h11x2_ck: dpll_iva_h11x2_ck@1b8 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_iva_h11x2_ck";
                clocks = <&dpll_iva_x2_ck>;
                ti,max-div = <63>;
                reg = <0x01b8>;
        dpll_iva_h12x2_ck: dpll_iva_h12x2_ck@1bc {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_iva_h12x2_ck";
                clocks = <&dpll_iva_x2_ck>;
                ti,max-div = <63>;
                reg = <0x01bc>;
        mpu_dpll_hs_clk_div: mpu_dpll_hs_clk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "mpu_dpll_hs_clk_div";
                clocks = <&dpll_core_h12x2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        dpll_mpu_ck: dpll_mpu_ck@160 {
                #clock-cells = <0>;
                compatible = "ti,omap5-mpu-dpll-clock";
+               clock-output-names = "dpll_mpu_ck";
                clocks = <&sys_clkin>, <&mpu_dpll_hs_clk_div>;
                reg = <0x0160>, <0x0164>, <0x016c>, <0x0168>;
        };
        dpll_mpu_m2_ck: dpll_mpu_m2_ck@170 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_mpu_m2_ck";
                clocks = <&dpll_mpu_ck>;
                ti,max-div = <31>;
                reg = <0x0170>;
        per_dpll_hs_clk_div: per_dpll_hs_clk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "per_dpll_hs_clk_div";
                clocks = <&dpll_abe_m3x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        usb_dpll_hs_clk_div: usb_dpll_hs_clk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "usb_dpll_hs_clk_div";
                clocks = <&dpll_abe_m3x2_ck>;
                clock-mult = <1>;
                clock-div = <3>;
        l3_iclk_div: l3_iclk_div@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3_iclk_div";
                ti,max-div = <2>;
                ti,bit-shift = <4>;
                reg = <0x100>;
        gpu_l3_iclk: gpu_l3_iclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "gpu_l3_iclk";
                clocks = <&l3_iclk_div>;
                clock-mult = <1>;
                clock-div = <1>;
        l4_root_clk_div: l4_root_clk_div@100 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l4_root_clk_div";
                ti,max-div = <2>;
                ti,bit-shift = <8>;
                reg = <0x100>;
        slimbus1_slimbus_clk: slimbus1_slimbus_clk@560 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "slimbus1_slimbus_clk";
                clocks = <&slimbus_clk>;
                ti,bit-shift = <11>;
                reg = <0x0560>;
        aess_fclk: aess_fclk@528 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "aess_fclk";
                clocks = <&abe_clk>;
                ti,bit-shift = <24>;
                ti,max-div = <2>;
        mcasp_sync_mux_ck: mcasp_sync_mux_ck@540 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "mcasp_sync_mux_ck";
                clocks = <&abe_24m_fclk>, <&dss_syc_gfclk_div>, <&func_24m_clk>;
                ti,bit-shift = <26>;
                reg = <0x0540>;
        mcasp_gfclk: mcasp_gfclk@540 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "mcasp_gfclk";
                clocks = <&mcasp_sync_mux_ck>, <&pad_clks_ck>, <&slimbus_clk>;
                ti,bit-shift = <24>;
                reg = <0x0540>;
        dummy_ck: dummy_ck {
                #clock-cells = <0>;
                compatible = "fixed-clock";
+               clock-output-names = "dummy_ck";
                clock-frequency = <0>;
        };
 };
        sys_clkin: sys_clkin@110 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "sys_clkin";
                clocks = <&virt_12000000_ck>, <&virt_13000000_ck>, <&virt_16800000_ck>, <&virt_19200000_ck>, <&virt_26000000_ck>, <&virt_27000000_ck>, <&virt_38400000_ck>;
                reg = <0x0110>;
                ti,index-starts-at-one;
        abe_dpll_bypass_clk_mux: abe_dpll_bypass_clk_mux@108 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_bypass_clk_mux";
                clocks = <&sys_clkin>, <&sys_32k_ck>;
                reg = <0x0108>;
        };
        abe_dpll_clk_mux: abe_dpll_clk_mux@10c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "abe_dpll_clk_mux";
                clocks = <&sys_clkin>, <&sys_32k_ck>;
                reg = <0x010c>;
        };
        custefuse_sys_gfclk_div: custefuse_sys_gfclk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "custefuse_sys_gfclk_div";
                clocks = <&sys_clkin>;
                clock-mult = <1>;
                clock-div = <2>;
        dss_syc_gfclk_div: dss_syc_gfclk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dss_syc_gfclk_div";
                clocks = <&sys_clkin>;
                clock-mult = <1>;
                clock-div = <1>;
        wkupaon_iclk_mux: wkupaon_iclk_mux@108 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "wkupaon_iclk_mux";
                clocks = <&sys_clkin>, <&abe_lp_clk_div>;
                reg = <0x0108>;
        };
        l3instr_ts_gclk_div: l3instr_ts_gclk_div {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "l3instr_ts_gclk_div";
                clocks = <&wkupaon_iclk_mux>;
                clock-mult = <1>;
                clock-div = <1>;
        dpll_per_byp_mux: dpll_per_byp_mux@14c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_per_byp_mux";
                clocks = <&sys_clkin>, <&per_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x014c>;
        dpll_per_ck: dpll_per_ck@140 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_per_ck";
                clocks = <&sys_clkin>, <&dpll_per_byp_mux>;
                reg = <0x0140>, <0x0144>, <0x014c>, <0x0148>;
        };
        dpll_per_x2_ck: dpll_per_x2_ck {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-x2-clock";
+               clock-output-names = "dpll_per_x2_ck";
                clocks = <&dpll_per_ck>;
        };
 
        dpll_per_h11x2_ck: dpll_per_h11x2_ck@158 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h11x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0158>;
        dpll_per_h12x2_ck: dpll_per_h12x2_ck@15c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h12x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                reg = <0x015c>;
        dpll_per_h14x2_ck: dpll_per_h14x2_ck@164 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_h14x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <63>;
                reg = <0x0164>;
        dpll_per_m2_ck: dpll_per_m2_ck@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2_ck";
                clocks = <&dpll_per_ck>;
                ti,max-div = <31>;
                reg = <0x0150>;
        dpll_per_m2x2_ck: dpll_per_m2x2_ck@150 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m2x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0150>;
        dpll_per_m3x2_ck: dpll_per_m3x2_ck@154 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_per_m3x2_ck";
                clocks = <&dpll_per_x2_ck>;
                ti,max-div = <31>;
                reg = <0x0154>;
        dpll_unipro1_ck: dpll_unipro1_ck@200 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_unipro1_ck";
                clocks = <&sys_clkin>, <&sys_clkin>;
                reg = <0x0200>, <0x0204>, <0x020c>, <0x0208>;
        };
        dpll_unipro1_clkdcoldo: dpll_unipro1_clkdcoldo {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_unipro1_clkdcoldo";
                clocks = <&dpll_unipro1_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        dpll_unipro1_m2_ck: dpll_unipro1_m2_ck@210 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_unipro1_m2_ck";
                clocks = <&dpll_unipro1_ck>;
                ti,max-div = <127>;
                reg = <0x0210>;
        dpll_unipro2_ck: dpll_unipro2_ck@1c0 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-clock";
+               clock-output-names = "dpll_unipro2_ck";
                clocks = <&sys_clkin>, <&sys_clkin>;
                reg = <0x01c0>, <0x01c4>, <0x01cc>, <0x01c8>;
        };
        dpll_unipro2_clkdcoldo: dpll_unipro2_clkdcoldo {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_unipro2_clkdcoldo";
                clocks = <&dpll_unipro2_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        dpll_unipro2_m2_ck: dpll_unipro2_m2_ck@1d0 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_unipro2_m2_ck";
                clocks = <&dpll_unipro2_ck>;
                ti,max-div = <127>;
                reg = <0x01d0>;
        dpll_usb_byp_mux: dpll_usb_byp_mux@18c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "dpll_usb_byp_mux";
                clocks = <&sys_clkin>, <&usb_dpll_hs_clk_div>;
                ti,bit-shift = <23>;
                reg = <0x018c>;
        dpll_usb_ck: dpll_usb_ck@180 {
                #clock-cells = <0>;
                compatible = "ti,omap4-dpll-j-type-clock";
+               clock-output-names = "dpll_usb_ck";
                clocks = <&sys_clkin>, <&dpll_usb_byp_mux>;
                reg = <0x0180>, <0x0184>, <0x018c>, <0x0188>;
        };
        dpll_usb_clkdcoldo: dpll_usb_clkdcoldo {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "dpll_usb_clkdcoldo";
                clocks = <&dpll_usb_ck>;
                clock-mult = <1>;
                clock-div = <1>;
        dpll_usb_m2_ck: dpll_usb_m2_ck@190 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "dpll_usb_m2_ck";
                clocks = <&dpll_usb_ck>;
                ti,max-div = <127>;
                reg = <0x0190>;
        func_128m_clk: func_128m_clk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_128m_clk";
                clocks = <&dpll_per_h11x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        func_12m_fclk: func_12m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_12m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <16>;
        func_24m_clk: func_24m_clk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_24m_clk";
                clocks = <&dpll_per_m2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        func_48m_fclk: func_48m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_48m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <4>;
        func_96m_fclk: func_96m_fclk {
                #clock-cells = <0>;
                compatible = "fixed-factor-clock";
+               clock-output-names = "func_96m_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                clock-mult = <1>;
                clock-div = <2>;
        l3init_60m_fclk: l3init_60m_fclk@104 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "l3init_60m_fclk";
                clocks = <&dpll_usb_m2_ck>;
                reg = <0x0104>;
                ti,dividers = <1>, <8>;
        iss_ctrlclk: iss_ctrlclk@1320 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "iss_ctrlclk";
                clocks = <&func_96m_fclk>;
                ti,bit-shift = <8>;
                reg = <0x1320>;
        lli_txphy_clk: lli_txphy_clk@f20 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "lli_txphy_clk";
                clocks = <&dpll_unipro1_clkdcoldo>;
                ti,bit-shift = <8>;
                reg = <0x0f20>;
        lli_txphy_ls_clk: lli_txphy_ls_clk@f20 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "lli_txphy_ls_clk";
                clocks = <&dpll_unipro1_m2_ck>;
                ti,bit-shift = <9>;
                reg = <0x0f20>;
        usb_phy_cm_clk32k: usb_phy_cm_clk32k@640 {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "usb_phy_cm_clk32k";
                clocks = <&sys_32k_ck>;
                ti,bit-shift = <8>;
                reg = <0x0640>;
        fdif_fclk: fdif_fclk@1328 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "fdif_fclk";
                clocks = <&dpll_per_h11x2_ck>;
                ti,bit-shift = <24>;
                ti,max-div = <2>;
        gpu_core_gclk_mux: gpu_core_gclk_mux@1520 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gpu_core_gclk_mux";
                clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>;
                ti,bit-shift = <24>;
                reg = <0x1520>;
        gpu_hyd_gclk_mux: gpu_hyd_gclk_mux@1520 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "gpu_hyd_gclk_mux";
                clocks = <&dpll_core_h14x2_ck>, <&dpll_per_h14x2_ck>;
                ti,bit-shift = <25>;
                reg = <0x1520>;
        hsi_fclk: hsi_fclk@1638 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "hsi_fclk";
                clocks = <&dpll_per_m2x2_ck>;
                ti,bit-shift = <24>;
                ti,max-div = <2>;
 &cm_core_clockdomains {
        l3init_clkdm: l3init_clkdm {
                compatible = "ti,clockdomain";
+               clock-output-names = "l3init_clkdm";
                clocks = <&dpll_usb_ck>;
        };
 };
        auxclk0_src_gate_ck: auxclk0_src_gate_ck@310 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk0_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0310>;
        auxclk0_src_mux_ck: auxclk0_src_mux_ck@310 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk0_src_mux_ck";
                clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0310>;
        auxclk0_src_ck: auxclk0_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk0_src_ck";
                clocks = <&auxclk0_src_gate_ck>, <&auxclk0_src_mux_ck>;
        };
 
        auxclk0_ck: auxclk0_ck@310 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk0_ck";
                clocks = <&auxclk0_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk1_src_gate_ck: auxclk1_src_gate_ck@314 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk1_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0314>;
        auxclk1_src_mux_ck: auxclk1_src_mux_ck@314 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk1_src_mux_ck";
                clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0314>;
        auxclk1_src_ck: auxclk1_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk1_src_ck";
                clocks = <&auxclk1_src_gate_ck>, <&auxclk1_src_mux_ck>;
        };
 
        auxclk1_ck: auxclk1_ck@314 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk1_ck";
                clocks = <&auxclk1_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk2_src_gate_ck: auxclk2_src_gate_ck@318 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk2_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0318>;
        auxclk2_src_mux_ck: auxclk2_src_mux_ck@318 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk2_src_mux_ck";
                clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0318>;
        auxclk2_src_ck: auxclk2_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk2_src_ck";
                clocks = <&auxclk2_src_gate_ck>, <&auxclk2_src_mux_ck>;
        };
 
        auxclk2_ck: auxclk2_ck@318 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk2_ck";
                clocks = <&auxclk2_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk3_src_gate_ck: auxclk3_src_gate_ck@31c {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk3_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x031c>;
        auxclk3_src_mux_ck: auxclk3_src_mux_ck@31c {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk3_src_mux_ck";
                clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x031c>;
        auxclk3_src_ck: auxclk3_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk3_src_ck";
                clocks = <&auxclk3_src_gate_ck>, <&auxclk3_src_mux_ck>;
        };
 
        auxclk3_ck: auxclk3_ck@31c {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk3_ck";
                clocks = <&auxclk3_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclk4_src_gate_ck: auxclk4_src_gate_ck@320 {
                #clock-cells = <0>;
                compatible = "ti,composite-no-wait-gate-clock";
+               clock-output-names = "auxclk4_src_gate_ck";
                clocks = <&dpll_core_m3x2_ck>;
                ti,bit-shift = <8>;
                reg = <0x0320>;
        auxclk4_src_mux_ck: auxclk4_src_mux_ck@320 {
                #clock-cells = <0>;
                compatible = "ti,composite-mux-clock";
+               clock-output-names = "auxclk4_src_mux_ck";
                clocks = <&sys_clkin>, <&dpll_core_m3x2_ck>, <&dpll_per_m3x2_ck>;
                ti,bit-shift = <1>;
                reg = <0x0320>;
        auxclk4_src_ck: auxclk4_src_ck {
                #clock-cells = <0>;
                compatible = "ti,composite-clock";
+               clock-output-names = "auxclk4_src_ck";
                clocks = <&auxclk4_src_gate_ck>, <&auxclk4_src_mux_ck>;
        };
 
        auxclk4_ck: auxclk4_ck@320 {
                #clock-cells = <0>;
                compatible = "ti,divider-clock";
+               clock-output-names = "auxclk4_ck";
                clocks = <&auxclk4_src_ck>;
                ti,bit-shift = <16>;
                ti,max-div = <16>;
        auxclkreq0_ck: auxclkreq0_ck@210 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq0_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>;
                ti,bit-shift = <2>;
                reg = <0x0210>;
        auxclkreq1_ck: auxclkreq1_ck@214 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq1_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>;
                ti,bit-shift = <2>;
                reg = <0x0214>;
        auxclkreq2_ck: auxclkreq2_ck@218 {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq2_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>;
                ti,bit-shift = <2>;
                reg = <0x0218>;
        auxclkreq3_ck: auxclkreq3_ck@21c {
                #clock-cells = <0>;
                compatible = "ti,mux-clock";
+               clock-output-names = "auxclkreq3_ck";
                clocks = <&auxclk0_ck>, <&auxclk1_ck>, <&auxclk2_ck>, <&auxclk3_ck>, <&auxclk4_ck>;
                ti,bit-shift = <2>;
                reg = <0x021c>;
 &cm_core_aon {
        mpu_cm: mpu_cm@300 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "mpu_cm";
                reg = <0x300 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                mpu_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "mpu_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        dsp_cm: dsp_cm@400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dsp_cm";
                reg = <0x400 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                dsp_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dsp_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        abe_cm: abe_cm@500 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "abe_cm";
                reg = <0x500 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                abe_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "abe_clkctrl";
                        reg = <0x20 0x64>;
                        #clock-cells = <2>;
                };
 &cm_core {
        l3main1_cm: l3main1_cm@700 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3main1_cm";
                reg = <0x700 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3main1_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3main1_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3main2_cm: l3main2_cm@800 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3main2_cm";
                reg = <0x800 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3main2_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3main2_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        ipu_cm: ipu_cm@900 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "ipu_cm";
                reg = <0x900 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                ipu_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "ipu_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        dma_cm: dma_cm@a00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dma_cm";
                reg = <0xa00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                dma_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dma_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        emif_cm: emif_cm@b00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "emif_cm";
                reg = <0xb00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                emif_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "emif_clkctrl";
                        reg = <0x20 0x1c>;
                        #clock-cells = <2>;
                };
 
        l4cfg_cm: l4cfg_cm@d00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4cfg_cm";
                reg = <0xd00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l4cfg_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l4cfg_clkctrl";
                        reg = <0x20 0x14>;
                        #clock-cells = <2>;
                };
 
        l3instr_cm: l3instr_cm@e00 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3instr_cm";
                reg = <0xe00 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3instr_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3instr_clkctrl";
                        reg = <0x20 0xc>;
                        #clock-cells = <2>;
                };
        };
 
-       l4per_cm: l4per_cm@1000 {
+       l4per_cm: clock@1000 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l4per_cm";
                reg = <0x1000 0x200>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0x1000 0x200>;
 
                l4per_clkctrl: clock@20 {
-                       compatible = "ti,clkctrl-l4per", "ti,clkctrl";
+                       compatible = "ti,clkctrl";
+                       clock-output-names = "l4per_clkctrl";
                        reg = <0x20 0x15c>;
                        #clock-cells = <2>;
                };
 
                l4sec_clkctrl: clock@1a0 {
-                       compatible = "ti,clkctrl-l4sec", "ti,clkctrl";
+                       compatible = "ti,clkctrl";
+                       clock-output-names = "l4sec_clkctrl";
                        reg = <0x1a0 0x3c>;
                        #clock-cells = <2>;
                };
 
        dss_cm: dss_cm@1400 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "dss_cm";
                reg = <0x1400 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                dss_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "dss_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        gpu_cm: gpu_cm@1500 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "gpu_cm";
                reg = <0x1500 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                gpu_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "gpu_clkctrl";
                        reg = <0x20 0x4>;
                        #clock-cells = <2>;
                };
 
        l3init_cm: l3init_cm@1600 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "l3init_cm";
                reg = <0x1600 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                l3init_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "l3init_clkctrl";
                        reg = <0x20 0xd4>;
                        #clock-cells = <2>;
                };
 &prm {
        wkupaon_cm: wkupaon_cm@1900 {
                compatible = "ti,omap4-cm";
+               clock-output-names = "wkupaon_cm";
                reg = <0x1900 0x100>;
                #address-cells = <1>;
                #size-cells = <1>;
 
                wkupaon_clkctrl: clk@20 {
                        compatible = "ti,clkctrl";
+                       clock-output-names = "wkupaon_clkctrl";
                        reg = <0x20 0x5c>;
                        #clock-cells = <2>;
                };
        fref_xtal_ck: fref_xtal_ck {
                #clock-cells = <0>;
                compatible = "ti,gate-clock";
+               clock-output-names = "fref_xtal_ck";
                clocks = <&sys_clkin>;
                ti,bit-shift = <28>;
                reg = <0x14>;
index 90846a7..dde4364 100644 (file)
                                clocks = <&armclk>;
                        };
 
-                       gic: gic@1000 {
+                       gic: interrupt-controller@1000 {
                                compatible = "arm,arm11mp-gic";
                                interrupt-controller;
                                #interrupt-cells = <3>;
diff --git a/arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts b/arch/arm/boot/dts/qcom-apq8026-asus-sparrow.dts
new file mode 100644 (file)
index 0000000..ace8cea
--- /dev/null
@@ -0,0 +1,294 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2022, Luca Weiss <luca@z3ntu.xyz>
+ */
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "qcom-pm8226.dtsi"
+
+/ {
+       model = "ASUS ZenWatch 2";
+       compatible = "asus,sparrow", "qcom,apq8026";
+       chassis-type = "watch";
+       qcom,msm-id = <199 0x20000>;
+       qcom,board-id = <8 3005>;
+
+       reserved-memory {
+               sbl_region: sbl@2f00000 {
+                       reg = <0x02f00000 0x100000>;
+                       no-map;
+               };
+               external_image_region: external-image@3100000 {
+                       reg = <0x3100000 0x200000>;
+                       no-map;
+               };
+               peripheral_region: peripheral@3300000 {
+                       reg = <0x3300000 0x600000>;
+                       no-map;
+               };
+               adsp_region: adsp@3900000 {
+                       reg = <0x3900000 0x1400000>;
+                       no-map;
+               };
+               modem_region: modem@4d00000 {
+                       reg = <0x4d00000 0x1b00000>;
+                       no-map;
+               };
+               modem_efs_region: modem-efs@7f00000 {
+                       reg = <0x7f00000 0x100000>;
+                       no-map;
+               };
+       };
+
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <2950000>;
+               regulator-max-microvolt = <2950000>;
+
+               gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_default_state>;
+       };
+};
+
+&blsp1_uart1 {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&blsp1_uart1_default_state>;
+
+       bluetooth {
+               compatible = "brcm,bcm43430a1-bt";
+               max-speed = <3000000>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&bluetooth_default_state>;
+
+               host-wakeup-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 61 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 34 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&pm8226_vib {
+       status = "okay";
+};
+
+&rpm_requests {
+       pm8226-regulators {
+               compatible = "qcom,rpm-pm8226-regulators";
+
+               pm8226_s3: s3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+               pm8226_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2200000>;
+               };
+               pm8226_s5: s5 {
+                       regulator-min-microvolt = <1150000>;
+                       regulator-max-microvolt = <1150000>;
+               };
+
+               pm8226_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l3: l3 {
+                       regulator-min-microvolt = <750000>;
+                       regulator-max-microvolt = <1337500>;
+               };
+               pm8226_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l5: l5 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+               pm8226_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1900000>;
+                       regulator-max-microvolt = <1900000>;
+               };
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l14: l14 {
+                       regulator-min-microvolt = <2750000>;
+                       regulator-max-microvolt = <2750000>;
+               };
+               pm8226_l15: l15 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+               pm8226_l17: l17 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l18: l18 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+               pm8226_l20: l20 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+               pm8226_l21: l21 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+               pm8226_l24: l24 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+               pm8226_l25: l25 {
+                       regulator-min-microvolt = <1775000>;
+                       regulator-max-microvolt = <2125000>;
+               };
+               pm8226_l26: l26 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+               pm8226_l27: l27 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+               pm8226_l28: l28 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_lvs1: lvs1 {};
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       bus-width = <8>;
+       non-removable;
+};
+
+&sdhc_3 {
+       status = "okay";
+
+       max-frequency = <100000000>;
+       non-removable;
+
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       wifi@1 {
+               compatible = "brcm,bcm43430a1-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+
+               interrupts-extended = <&tlmm 46 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "host-wake";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_hostwake_default_state>;
+       };
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <350000>;
+       qcom,fast-charge-safe-voltage = <4430000>;
+       qcom,fast-charge-high-threshold-voltage = <4400000>;
+       qcom,auto-recharge-threshold-voltage = <4300000>;
+       qcom,minimum-input-voltage = <4400000>;
+};
+
+&tlmm {
+       blsp1_uart1_default_state: blsp1-uart1-default-state {
+               pins = "gpio0", "gpio1", "gpio2", "gpio3";
+               function = "blsp_uart1";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       bluetooth_default_state: bluetooth-default-state {
+               pins = "gpio48", "gpio61";
+               function = "gpio";
+               drive-strength = <8>;
+               bias-disable;
+               input-enable;
+       };
+
+       wlan_hostwake_default_state: wlan-hostwake-default-state {
+               pins = "gpio46";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               input-enable;
+       };
+
+       wlan_regulator_default_state: wlan-regulator-default-state {
+               pins = "gpio35";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+};
+
+&usb {
+       status = "okay";
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+};
+
+&usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
index a1c8ae5..34c0ba7 100644 (file)
        smd {
                compatible = "qcom,smd";
 
-               modem@0 {
+               modem-edge {
                        interrupts = <0 37 IRQ_TYPE_EDGE_RISING>;
 
                        qcom,ipc = <&l2cc 8 3>;
                        status = "disabled";
                };
 
-               q6@1 {
+               q6-edge {
                        interrupts = <0 90 IRQ_TYPE_EDGE_RISING>;
 
                        qcom,ipc = <&l2cc 8 15>;
                        status = "disabled";
                };
 
-               dsps@3 {
+               dsps-edge {
                        interrupts = <0 138 IRQ_TYPE_EDGE_RISING>;
 
                        qcom,ipc = <&sps_sic_non_secure 0x4080 0>;
                        status = "disabled";
                };
 
-               riva@6 {
+               riva-edge {
                        interrupts = <0 198 IRQ_TYPE_EDGE_RISING>;
 
                        qcom,ipc = <&l2cc 8 25>;
                };
 
                /* Temporary fixed regulator */
-               sdcc1bam:dma@12402000{
+               sdcc1bam: dma-controller@12402000{
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12402000 0x8000>;
                        interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,ee = <0>;
                };
 
-               sdcc3bam:dma@12182000{
+               sdcc3bam: dma-controller@12182000{
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12182000 0x8000>;
                        interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,ee = <0>;
                };
 
-               sdcc4bam:dma@121c2000{
+               sdcc4bam: dma-controller@121c2000{
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x121c2000 0x8000>;
                        interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
 
                                        qcom,mmio = <&riva>;
 
-                                       bt {
+                                       bluetooth {
                                                compatible = "qcom,wcnss-bt";
                                        };
 
index 83793b8..3051a86 100644 (file)
        chosen {
                stdout-path = "serial0:115200n8";
        };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
 
-       soc {
-               serial@f991e000 {
+&blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <200000>;
+
+       eeprom: eeprom@52 {
+               compatible = "atmel,24c128";
+               reg = <0x52>;
+               pagesize = <32>;
+               read-only;
+       };
+};
+
+&otg {
+       status = "okay";
+
+       phys = <&usb_hs2_phy>;
+       phy-select = <&tcsr 0xb000 1>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       ulpi {
+               phy@b {
                        status = "okay";
+                       v3p3-supply = <&pm8941_l24>;
+                       v1p8-supply = <&pm8941_l6>;
+                       extcon = <&smbb>;
+                       qcom,init-seq = /bits/ 8 <0x1 0x63>;
+               };
+       };
+};
+
+&rpm_requests {
+       pm8841-regulators {
+               compatible = "qcom,rpm-pm8841-regulators";
+
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
                };
 
-               sdhci@f9824900 {
-                       bus-width = <8>;
-                       non-removable;
-                       status = "okay";
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
 
-                       vmmc-supply = <&pm8941_l20>;
-                       vqmmc-supply = <&pm8941_s3>;
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
 
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&sdhc1_pin_a>;
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
                };
+       };
 
-               sdhci@f98a4900 {
-                       cd-gpios = <&msmgpio 62 0x1>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
-                       bus-width = <4>;
-                       status = "okay";
+       pm8941-regulators {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vin_5vs-supply = <&pm8941_5v>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
 
-                       vmmc-supply = <&pm8941_l21>;
-                       vqmmc-supply = <&pm8941_l13>;
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
                };
 
-               usb@f9a55000 {
-                       status = "okay";
-                       phys = <&usb_hs2_phy>;
-                       phy-select = <&tcsr 0xb000 1>;
-                       extcon = <&smbb>, <&usb_id>;
-                       vbus-supply = <&chg_otg>;
-                       hnp-disable;
-                       srp-disable;
-                       adp-disable;
-                       ulpi {
-                               phy@b {
-                                       status = "okay";
-                                       v3p3-supply = <&pm8941_l24>;
-                                       v1p8-supply = <&pm8941_l6>;
-                                       extcon = <&smbb>;
-                                       qcom,init-seq = /bits/ 8 <0x1 0x63>;
-                               };
-                       };
-               };
-
-
-               pinctrl@fd510000 {
-                       i2c11_pins: i2c11 {
-                               mux {
-                                       pins = "gpio83", "gpio84";
-                                       function = "blsp_i2c11";
-                               };
-                       };
-
-                       spi8_default: spi8_default {
-                               mosi {
-                                       pins = "gpio45";
-                                       function = "blsp_spi8";
-                               };
-                               miso {
-                                       pins = "gpio46";
-                                       function = "blsp_spi8";
-                               };
-                               cs {
-                                       pins = "gpio47";
-                                       function = "blsp_spi8";
-                               };
-                               clk {
-                                       pins = "gpio48";
-                                       function = "blsp_spi8";
-                               };
-                       };
-
-                       sdhc1_pin_a: sdhc1-pin-active {
-                               clk {
-                                       pins = "sdc1_clk";
-                                       drive-strength = <16>;
-                                       bias-disable;
-                               };
-
-                               cmd-data {
-                                       pins = "sdc1_cmd", "sdc1_data";
-                                       drive-strength = <10>;
-                                       bias-pull-up;
-                               };
-                       };
-
-                       sdhc2_cd_pin_a: sdhc2-cd-pin-active {
-                               pins = "gpio62";
-                               function = "gpio";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       sdhc2_pin_a: sdhc2-pin-active {
-                               clk {
-                                       pins = "sdc2_clk";
-                                       drive-strength = <10>;
-                                       bias-disable;
-                               };
-
-                               cmd-data {
-                                       pins = "sdc2_cmd", "sdc2_data";
-                                       drive-strength = <6>;
-                                       bias-pull-up;
-                               };
-                       };
-               };
-
-               i2c@f9967000 {
-                       status = "okay";
-                       clock-frequency = <200000>;
-                       pinctrl-0 = <&i2c11_pins>;
-                       pinctrl-names = "default";
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
 
-                       eeprom: eeprom@52 {
-                               compatible = "atmel,24c128";
-                               reg = <0x52>;
-                               pagesize = <32>;
-                               read-only;
-                       };
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+                       regulator-always-on;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
                };
        };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       cd-gpios = <&tlmm 62 0x1>;
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+};
+
+&tlmm {
+       sdc1_on: sdc1-on {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc2_on: sdc2-on {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
 
-       smd {
-               rpm {
-                       rpm_requests {
-                               pm8841-regulators {
-                                       s1 {
-                                               regulator-min-microvolt = <675000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-                               };
-
-                               pm8941-regulators {
-                                       vdd_l1_l3-supply = <&pm8941_s1>;
-                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-                                       vdd_l4_l11-supply = <&pm8941_s1>;
-                                       vdd_l5_l7-supply = <&pm8941_s2>;
-                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-                                       vin_5vs-supply = <&pm8941_5v>;
-
-                                       s1 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-                                               regulator-boot-on;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l3 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l4 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l10 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                               regulator-always-on;
-                                       };
-
-                                       l11 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                       };
-
-                                       l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l17 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l19 {
-                                               regulator-min-microvolt = <3300000>;
-                                               regulator-max-microvolt = <3300000>;
-                                               regulator-always-on;
-                                       };
-
-                                       l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-allow-set-load;
-                                               regulator-boot-on;
-                                               regulator-system-load = <200000>;
-                                       };
-
-                                       l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l23 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-
-                                               regulator-boot-on;
-                                       };
-                               };
-                       };
+               cd {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
                };
        };
 };
index 52240fc..da50a1a 100644 (file)
                        qcom,ipc = <&apcs 8 0>;
                        qcom,smd-edge = <15>;
 
-                       rpm_requests {
+                       rpm-requests {
                                compatible = "qcom,rpm-apq8084";
                                qcom,smd-channels = "rpm_requests";
 
index 0c10d9e..03bb9e1 100644 (file)
@@ -64,7 +64,7 @@
                        };
                };
 
-               blsp_dma: dma@7884000 {
+               blsp_dma: dma-controller@7884000 {
                        status = "okay";
                };
 
@@ -89,7 +89,7 @@
                        status = "okay";
                };
 
-               cryptobam: dma@8e04000 {
+               cryptobam: dma-controller@8e04000 {
                        status = "okay";
                };
 
index a7b1201..79b0c63 100644 (file)
@@ -8,7 +8,7 @@
        compatible = "qcom,ipq4019-dk04.1-c1", "qcom,ipq4019";
 
        soc {
-               dma@7984000 {
+               dma-controller@7984000 {
                        status = "okay";
                };
 
index 7a337dc..faeaa6b 100644 (file)
@@ -79,7 +79,7 @@
                        status = "okay";
                };
 
-               dma@7884000 {
+               dma-controller@7884000 {
                        status = "okay";
                };
 
@@ -89,7 +89,7 @@
                        status = "okay";
                        cs-gpios = <&tlmm 12 0>;
 
-                       m25p80@0 {
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0>;
index 06f9f2c..d596dd1 100644 (file)
@@ -52,7 +52,7 @@
                        status = "okay";
                        cs-gpios = <&tlmm 12 0>;
 
-                       m25p80@0 {
+                       flash@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                                reg = <0>;
index 9487251..0107f55 100644 (file)
@@ -52,7 +52,7 @@
                        status = "okay";
                };
 
-               dma@7884000 {
+               dma-controller@7884000 {
                        status = "okay";
                };
 
@@ -62,7 +62,7 @@
                        status = "okay";
                };
 
-               dma@7984000 {
+               dma-controller@7984000 {
                        status = "okay";
                };
 
index a9d0566..9d5e934 100644 (file)
                        status = "disabled";
                };
 
-               blsp_dma: dma@7884000 {
+               blsp_dma: dma-controller@7884000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x07884000 0x23000>;
                        interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
                        clock-names = "core", "iface";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       dmas = <&blsp_dma 5>, <&blsp_dma 4>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 4>, <&blsp_dma 5>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        clock-names = "core", "iface";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       dmas = <&blsp_dma 7>, <&blsp_dma 6>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 6>, <&blsp_dma 7>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78b7000 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       dmas = <&blsp_dma 9>, <&blsp_dma 8>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 8>, <&blsp_dma 9>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78b8000 0x600>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       dmas = <&blsp_dma 11>, <&blsp_dma 10>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 10>, <&blsp_dma 11>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
-               cryptobam: dma@8e04000 {
+               cryptobam: dma-controller@8e04000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x08e04000 0x20000>;
                        interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
                                <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 1>, <&blsp_dma 0>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 0>, <&blsp_dma 1>;
+                       dma-names = "tx", "rx";
                };
 
                blsp1_uart2: serial@78b0000 {
                        clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
                                <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 3>, <&blsp_dma 2>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 2>, <&blsp_dma 3>;
+                       dma-names = "tx", "rx";
                };
 
                watchdog: watchdog@b017000 {
                        status = "disabled";
                };
 
-               qpic_bam: dma@7984000 {
+               qpic_bam: dma-controller@7984000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x7984000 0x1a000>;
                        interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
index 6533006..5c802b9 100644 (file)
@@ -36,7 +36,7 @@
 
                                cs-gpios = <&qcom_pinmux 20 0>;
 
-                               flash: m25p80@0 {
+                               flash: flash@0 {
                                        compatible = "s25fl256s1";
                                        #address-cells = <1>;
                                        #size-cells = <1>;
index 8cb04aa..808ea18 100644 (file)
        };
 
        clocks {
-               cxo_board {
+               cxo_board: cxo_board {
                        compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <25000000>;
                };
 
-               pxo_board {
+               pxo_board: pxo_board {
                        compatible = "fixed-clock";
                        #clock-cells = <0>;
                        clock-frequency = <25000000>;
                };
 
                gcc: clock-controller@900000 {
-                       compatible = "qcom,gcc-ipq8064";
+                       compatible = "qcom,gcc-ipq8064", "syscon";
+                       clocks = <&pxo_board>, <&cxo_board>;
+                       clock-names = "pxo", "cxo";
                        reg = <0x00900000 0x4000>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        regulator-always-on;
                };
 
-               sdcc1bam: dma@12402000 {
+               sdcc1bam: dma-controller@12402000 {
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12402000 0x8000>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,ee = <0>;
                };
 
-               sdcc3bam: dma@12182000 {
+               sdcc3bam: dma-controller@12182000 {
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12182000 0x8000>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
index 4d4f37c..8f0752c 100644 (file)
                        };
                };
 
-               sdcc1bam: dma@12182000{
+               sdcc1bam: dma-controller@12182000{
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12182000 0x8000>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
                        qcom,ee = <0>;
                };
 
-               sdcc2bam: dma@12142000{
+               sdcc2bam: dma-controller@12142000{
                        compatible = "qcom,bam-v1.3.0";
                        reg = <0x12142000 0x8000>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
index 85e5699..28eca15 100644 (file)
                        status = "disabled";
                };
 
+               blsp1_uart1: serial@f991d000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf991d000 0x1000>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
                blsp1_uart3: serial@f991f000 {
                        compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
                        reg = <0xf991f000 0x1000>;
index a258abb..47b97da 100644 (file)
                        ranges;
 
                        syscon-tcsr = <&tcsr>;
+                       status = "disabled";
 
                        gsbi8_i2c: i2c@19880000 {
                                compatible = "qcom,i2c-qup-v1.1.1";
diff --git a/arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts b/arch/arm/boot/dts/qcom-msm8974-fairphone-fp2.dts
deleted file mode 100644 (file)
index 6d77e0f..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-#include "qcom-msm8974.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-
-
-/ {
-       model = "Fairphone 2";
-       compatible = "fairphone,fp2", "qcom,msm8974";
-
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               camera-snapshot {
-                       label = "camera_snapshot";
-                       gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_CAMERA>;
-                       wakeup-source;
-                       debounce-interval = <15>;
-               };
-
-               volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       wakeup-source;
-                       debounce-interval = <15>;
-               };
-
-               volume-up {
-                       label = "volume_up";
-                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,code = <KEY_VOLUMEUP>;
-                       wakeup-source;
-                       debounce-interval = <15>;
-               };
-       };
-
-       vibrator {
-               compatible = "gpio-vibrator";
-               enable-gpios = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
-               vcc-supply = <&pm8941_l18>;
-       };
-
-       smd {
-               rpm {
-                       rpm_requests {
-                               pm8841-regulators {
-                                       s1 {
-                                               regulator-min-microvolt = <675000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1050000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-                               };
-
-                               pm8941-regulators {
-                                       vdd_l1_l3-supply = <&pm8941_s1>;
-                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-                                       vdd_l4_l11-supply = <&pm8941_s1>;
-                                       vdd_l5_l7-supply = <&pm8941_s2>;
-                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
-                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
-                                       vdd_l21-supply = <&vreg_boost>;
-
-                                       s1 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l3 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l4 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l10 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l11 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1350000>;
-                                       };
-
-                                       l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l17 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l19 {
-                                               regulator-min-microvolt = <2900000>;
-                                               regulator-max-microvolt = <3350000>;
-                                       };
-
-                                       l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                               regulator-system-load = <200000>;
-                                               regulator-allow-set-load;
-                                       };
-
-                                       l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       l23 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-
-                                               regulator-boot-on;
-                                       };
-                               };
-                       };
-               };
-       };
-};
-
-&soc {
-       serial@f991e000 {
-               status = "okay";
-       };
-
-       remoteproc@fb21b000 {
-               status = "okay";
-
-               vddmx-supply = <&pm8841_s1>;
-               vddcx-supply = <&pm8841_s2>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&wcnss_pin_a>;
-
-               smd-edge {
-                       qcom,remote-pid = <4>;
-                       label = "pronto";
-
-                       wcnss {
-                               status = "okay";
-                       };
-               };
-       };
-
-       pinctrl@fd510000 {
-               sdhc1_pin_a: sdhc1-pin-active {
-                       clk {
-                               pins = "sdc1_clk";
-                               drive-strength = <16>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc1_cmd", "sdc1_data";
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-               };
-
-               sdhc2_pin_a: sdhc2-pin-active {
-                       clk {
-                               pins = "sdc2_clk";
-                               drive-strength = <10>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc2_cmd", "sdc2_data";
-                               drive-strength = <6>;
-                               bias-pull-up;
-                       };
-               };
-
-               wcnss_pin_a: wcnss-pin-active {
-                       wlan {
-                               pins =  "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
-                               function = "wlan";
-
-                               drive-strength = <6>;
-                               bias-pull-down;
-                       };
-
-                       bt {
-                               pins = "gpio35", "gpio43", "gpio44";
-                               function = "bt";
-
-                               drive-strength = <2>;
-                               bias-pull-down;
-                       };
-
-                       fm {
-                               pins = "gpio41", "gpio42";
-                               function = "fm";
-
-                               drive-strength = <2>;
-                               bias-pull-down;
-                       };
-               };
-       };
-
-       sdhci@f9824900 {
-               status = "okay";
-
-               vmmc-supply = <&pm8941_l20>;
-               vqmmc-supply = <&pm8941_s3>;
-
-               bus-width = <8>;
-               non-removable;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc1_pin_a>;
-       };
-
-       sdhci@f98a4900 {
-               status = "okay";
-
-               vmmc-supply = <&pm8941_l21>;
-               vqmmc-supply = <&pm8941_l13>;
-
-               bus-width = <4>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc2_pin_a>;
-       };
-
-       usb@f9a55000 {
-               status = "okay";
-
-               phys = <&usb_hs1_phy>;
-               phy-select = <&tcsr 0xb000 0>;
-               extcon = <&smbb>, <&usb_id>;
-               vbus-supply = <&chg_otg>;
-
-               hnp-disable;
-               srp-disable;
-               adp-disable;
-
-               ulpi {
-                       phy@a {
-                               status = "okay";
-
-                               v1p8-supply = <&pm8941_l6>;
-                               v3p3-supply = <&pm8941_l24>;
-
-                               extcon = <&smbb>;
-                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
-                       };
-               };
-       };
-
-       imem@fe805000 {
-               status = "okay";
-
-               reboot-mode {
-                       mode-normal     = <0x77665501>;
-                       mode-bootloader = <0x77665500>;
-                       mode-recovery   = <0x77665502>;
-               };
-       };
-};
-
-&spmi_bus {
-       pm8941@0 {
-               gpios@c000 {
-                       gpio_keys_pin_a: gpio-keys-active {
-                               pins = "gpio1", "gpio2", "gpio5";
-                               function = "normal";
-
-                               bias-pull-up;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-               };
-       };
-};
index 0691361..9493886 100644 (file)
@@ -2,7 +2,6 @@
 #include "qcom-msm8974.dtsi"
 #include "qcom-pm8841.dtsi"
 #include "qcom-pm8941.dtsi"
-#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 
 
        aliases {
                serial0 = &blsp1_uart1;
-               serial1 = &blsp2_uart10;
+               serial1 = &blsp2_uart4;
        };
 
        chosen {
                stdout-path = "serial0:115200n8";
        };
 
-       smd {
-               rpm {
-                       rpm_requests {
-                               pm8841-regulators {
-                                       s1 {
-                                               regulator-min-microvolt = <675000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1050000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <815000>;
-                                               regulator-max-microvolt = <900000>;
-                                       };
-                               };
-
-                               pm8941-regulators {
-                                       vdd_l1_l3-supply = <&pm8941_s1>;
-                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-                                       vdd_l4_l11-supply = <&pm8941_s1>;
-                                       vdd_l5_l7-supply = <&pm8941_s2>;
-                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-                                       vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
-                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
-                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
-                                       vdd_l21-supply = <&vreg_boost>;
-
-                                       s1 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l3 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l4 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l10 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l11 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                       };
-
-                                       l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l17 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l19 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                               regulator-system-load = <200000>;
-                                               regulator-allow-set-load;
-                                       };
-
-                                       l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       l23 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-
-                                               regulator-boot-on;
-                                       };
-                               };
-                       };
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
                };
        };
 
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
 
-               gpio = <&msmgpio 26 GPIO_ACTIVE_HIGH>;
+               gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>;
                enable-active-high;
 
                pinctrl-names = "default";
        };
 };
 
-&soc {
-       serial@f991d000 {
-               status = "okay";
+&blsp1_i2c1 {
+       status = "okay";
+       clock-frequency = <100000>;
+
+       charger: bq24192@6b {
+               compatible = "ti,bq24192";
+               reg = <0x6b>;
+               interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
+
+               omit-battery-class;
+
+               usb_otg_vbus: usb-otg-vbus { };
        };
 
-       pinctrl@fd510000 {
-               sdhc1_pin_a: sdhc1-pin-active {
-                       clk {
-                               pins = "sdc1_clk";
-                               drive-strength = <16>;
-                               bias-disable;
-                       };
+       fuelgauge: max17048@36 {
+               compatible = "maxim,max17048";
+               reg = <0x36>;
 
-                       cmd-data {
-                               pins = "sdc1_cmd", "sdc1_data";
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-               };
+               maxim,double-soc;
+               maxim,rcomp = /bits/ 8 <0x4d>;
 
-               sdhc2_pin_a: sdhc2-pin-active {
-                       clk {
-                               pins = "sdc2_clk";
-                               drive-strength = <6>;
-                               bias-disable;
-                       };
+               interrupt-parent = <&tlmm>;
+               interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
 
-                       cmd-data {
-                               pins = "sdc2_cmd", "sdc2_data";
-                               drive-strength = <6>;
-                               bias-pull-up;
-                       };
-               };
+               pinctrl-names = "default";
+               pinctrl-0 = <&fuelgauge_pin>;
 
-               i2c1_pins: i2c1 {
-                       mux {
-                               pins = "gpio2", "gpio3";
-                               function = "blsp_i2c1";
+               maxim,alert-low-soc-level = <2>;
+       };
+};
 
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
+&blsp1_i2c2 {
+       status = "okay";
+       clock-frequency = <355000>;
 
-               i2c2_pins: i2c2 {
-                       mux {
-                               pins = "gpio6", "gpio7";
-                               function = "blsp_i2c2";
+       synaptics@70 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x70>;
 
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
+               interrupts-extended = <&tlmm 5 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
 
-               i2c3_pins: i2c3 {
-                       mux {
-                               pins = "gpio10", "gpio11";
-                               function = "blsp_i2c3";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pin>;
 
-               i2c11_pins: i2c11 {
-                       mux {
-                               pins = "gpio83", "gpio84";
-                               function = "blsp_i2c11";
+               #address-cells = <1>;
+               #size-cells = <0>;
 
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
                };
 
-               i2c12_pins: i2c12 {
-                       mux {
-                               pins = "gpio87", "gpio88";
-                               function = "blsp_i2c12";
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
                };
+       };
+};
 
-               mpu6515_pin: mpu6515 {
-                       irq {
-                               pins = "gpio73";
-                               function = "gpio";
-                               bias-disable;
-                               input-enable;
-                       };
-               };
+&blsp1_i2c3 {
+       status = "okay";
+       clock-frequency = <100000>;
+
+       avago_apds993@39 {
+               compatible = "avago,apds9930";
+               reg = <0x39>;
+               interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
+               vdd-supply = <&pm8941_l17>;
+               vddio-supply = <&pm8941_lvs1>;
+               led-max-microamp = <100000>;
+               amstaos,proximity-diodes = <0>;
+       };
+};
 
-               touch_pin: touch {
-                       int {
-                               pins = "gpio5";
-                               function = "gpio";
+&blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <355000>;
 
-                               drive-strength = <2>;
-                               bias-disable;
-                               input-enable;
-                       };
+       led-controller@38 {
+               compatible = "ti,lm3630a";
+               status = "okay";
+               reg = <0x38>;
 
-                       reset {
-                               pins = "gpio8";
-                               function = "gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
 
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
+               led@0 {
+                       reg = <0>;
+                       led-sources = <0 1>;
+                       label = "lcd-backlight";
+                       default-brightness = <200>;
                };
+       };
+};
 
-               panel_pin: panel {
-                       te {
-                               pins = "gpio12";
-                               function = "mdp_vsync";
+&blsp2_i2c6 {
+       status = "okay";
+       clock-frequency = <100000>;
 
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
+       mpu6515@68 {
+               compatible = "invensense,mpu6515";
+               reg = <0x68>;
+               interrupts-extended = <&tlmm 73 IRQ_TYPE_EDGE_FALLING>;
+               vddio-supply = <&pm8941_lvs1>;
 
-               bt_pin: bt {
-                       hostwake {
-                               pins = "gpio42";
-                               function = "gpio";
-                       };
+               pinctrl-names = "default";
+               pinctrl-0 = <&mpu6515_pin>;
+
+               mount-matrix = "0", "-1", "0",
+                               "-1", "0", "0",
+                               "0", "0", "1";
 
-                       devwake {
-                               pins = "gpio62";
-                               function = "gpio";
+               i2c-gate {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       ak8963@f {
+                               compatible = "asahi-kasei,ak8963";
+                               reg = <0x0f>;
+                               gpios = <&tlmm 67 0>;
+                               vid-supply = <&pm8941_lvs1>;
+                               vdd-supply = <&pm8941_l17>;
                        };
 
-                       shutdown {
-                               pins = "gpio41";
-                               function = "gpio";
+                       bmp280@76 {
+                               compatible = "bosch,bmp280";
+                               reg = <0x76>;
+                               vdda-supply = <&pm8941_lvs1>;
+                               vddd-supply = <&pm8941_l17>;
                        };
                };
+       };
+};
 
-               blsp2_uart10_pin_a: blsp2-uart10-pin-active {
-                       tx {
-                               pins = "gpio53";
-                               function = "blsp_uart10";
+&blsp1_uart1 {
+       status = "okay";
+};
 
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
+&blsp2_uart4 {
+       status = "okay";
 
-                       rx {
-                               pins = "gpio54";
-                               function = "blsp_uart10";
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               max-speed = <3000000>;
 
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pin>;
+
+               host-wakeup-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 62 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&tlmm 41 GPIO_ACTIVE_HIGH>;
+       };
+};
 
-                       cts {
-                               pins = "gpio55";
-                               function = "blsp_uart10";
+&dsi0 {
+       status = "okay";
 
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
+       vdda-supply = <&pm8941_l2>;
+       vdd-supply = <&pm8941_lvs3>;
+       vddio-supply = <&pm8941_l12>;
 
-                       rts {
-                               pins = "gpio56";
-                               function = "blsp_uart10";
+       panel: panel@0 {
+               reg = <0>;
+               compatible = "lg,acx467akm-7";
 
-                               drive-strength = <2>;
-                               bias-disable;
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_pin>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dsi0_out>;
                        };
                };
        };
+};
 
-       sdhci@f9824900 {
-               status = "okay";
+&dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
 
-               vmmc-supply = <&pm8941_l20>;
-               vqmmc-supply = <&pm8941_s3>;
+&dsi0_phy {
+       status = "okay";
 
-               bus-width = <8>;
-               non-removable;
+       vddio-supply = <&pm8941_l12>;
+};
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc1_pin_a>;
-       };
+&mdss {
+       status = "okay";
+};
 
-       sdhci@f98a4900 {
-               status = "okay";
+&otg {
+       status = "okay";
 
-               max-frequency = <100000000>;
-               bus-width = <4>;
-               non-removable;
-               vmmc-supply = <&vreg_wlan>;
-               vqmmc-supply = <&pm8941_s3>;
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc2_pin_a>;
+       extcon = <&charger>, <&usb_id>;
+       vbus-supply = <&usb_otg_vbus>;
 
-               #address-cells = <1>;
-               #size-cells = <0>;
+       hnp-disable;
+       srp-disable;
+       adp-disable;
 
-               bcrmf@1 {
-                       compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
-                       reg = <1>;
+       ulpi {
+               phy@a {
+                       status = "okay";
 
-                       brcm,drive-strength = <10>;
+                       v1p8-supply = <&pm8941_l6>;
+                       v3p3-supply = <&pm8941_l24>;
 
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wlan_sleep_clk_pin>;
+                       qcom,init-seq = /bits/ 8 <0x1 0x64>;
                };
        };
+};
 
-       gpio-keys {
-               compatible = "gpio-keys";
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active {
+               pins = "gpio2", "gpio3";
+               function = "normal";
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
 
-               volume-up {
-                       label = "volume_up";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-               };
+       fuelgauge_pin: fuelgauge-int {
+               pins = "gpio9";
+               function = "normal";
 
-               volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-               };
+               bias-disable;
+               input-enable;
+               power-source = <PM8941_GPIO_S3>;
        };
 
-       serial@f9960000 {
-               status = "okay";
+       wlan_sleep_clk_pin: wl-sleep-clk {
+               pins = "gpio16";
+               function = "func2";
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&blsp2_uart10_pin_a>;
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+       };
 
-               bluetooth {
-                       compatible = "brcm,bcm43438-bt";
-                       max-speed = <3000000>;
+       wlan_regulator_pin: wl-reg-active {
+               pins = "gpio17";
+               function = "normal";
 
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&bt_pin>;
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
 
-                       host-wakeup-gpios = <&msmgpio 42 GPIO_ACTIVE_HIGH>;
-                       device-wakeup-gpios = <&msmgpio 62 GPIO_ACTIVE_HIGH>;
-                       shutdown-gpios = <&msmgpio 41 GPIO_ACTIVE_HIGH>;
-               };
+       otg {
+               gpio-hog;
+               gpios = <35 GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "otg-gpio";
        };
+};
 
-       i2c@f9967000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c11_pins>;
-               clock-frequency = <355000>;
-               qcom,src-freq = <50000000>;
+&rpm_requests {
+       pm8841-regulators {
+               compatible = "qcom,rpm-pm8841-regulators";
 
-               led-controller@38 {
-                       compatible = "ti,lm3630a";
-                       status = "okay";
-                       reg = <0x38>;
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
 
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
 
-                       led@0 {
-                               reg = <0>;
-                               led-sources = <0 1>;
-                               label = "lcd-backlight";
-                               default-brightness = <200>;
-                       };
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
                };
-       };
 
-       i2c@f9968000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c12_pins>;
-               clock-frequency = <100000>;
-               qcom,src-freq = <50000000>;
-
-               mpu6515@68 {
-                       compatible = "invensense,mpu6515";
-                       reg = <0x68>;
-                       interrupts-extended = <&msmgpio 73 IRQ_TYPE_EDGE_FALLING>;
-                       vddio-supply = <&pm8941_lvs1>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&mpu6515_pin>;
-
-                       mount-matrix = "0", "-1", "0",
-                                      "-1", "0", "0",
-                                      "0", "0", "1";
-
-                       i2c-gate {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               ak8963@f {
-                                       compatible = "asahi-kasei,ak8963";
-                                       reg = <0x0f>;
-                                       gpios = <&msmgpio 67 0>;
-                                       vid-supply = <&pm8941_lvs1>;
-                                       vdd-supply = <&pm8941_l17>;
-                               };
-
-                               bmp280@76 {
-                                       compatible = "bosch,bmp280";
-                                       reg = <0x76>;
-                                       vdda-supply = <&pm8941_lvs1>;
-                                       vddd-supply = <&pm8941_l17>;
-                               };
-                       };
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <815000>;
+                       regulator-max-microvolt = <900000>;
                };
        };
 
-       i2c@f9923000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c1_pins>;
-               clock-frequency = <100000>;
-               qcom,src-freq = <50000000>;
+       pm8941-regulators {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l8_l16_l18_l19-supply = <&vreg_vph_pwr>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
 
-               charger: bq24192@6b {
-                       compatible = "ti,bq24192";
-                       reg = <0x6b>;
-                       interrupts-extended = <&spmi_bus 0 0xd5 0 IRQ_TYPE_EDGE_FALLING>;
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
 
-                       omit-battery-class;
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
 
-                       usb_otg_vbus: usb-otg-vbus { };
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
                };
 
-               fuelgauge: max17048@36 {
-                       compatible = "maxim,max17048";
-                       reg = <0x36>;
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
 
-                       maxim,double-soc;
-                       maxim,rcomp = /bits/ 8 <0x4d>;
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
 
-                       interrupt-parent = <&msmgpio>;
-                       interrupts = <9 IRQ_TYPE_LEVEL_LOW>;
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
 
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&fuelgauge_pin>;
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
 
-                       maxim,alert-low-soc-level = <2>;
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
                };
-       };
 
-       i2c@f9924000 {
-               status = "okay";
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
 
-               clock-frequency = <355000>;
-               qcom,src-freq = <50000000>;
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
 
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c2_pins>;
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
 
-               synaptics@70 {
-                       compatible = "syna,rmi4-i2c";
-                       reg = <0x70>;
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
 
-                       interrupts-extended = <&msmgpio 5 IRQ_TYPE_EDGE_FALLING>;
-                       vdd-supply = <&pm8941_l22>;
-                       vio-supply = <&pm8941_lvs3>;
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
 
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&touch_pin>;
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
 
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
 
-                       rmi4-f01@1 {
-                               reg = <0x1>;
-                               syna,nosleep-mode = <1>;
-                       };
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
 
-                       rmi4-f12@12 {
-                               reg = <0x12>;
-                               syna,sensor-type = <1>;
-                       };
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
                };
-       };
 
-       i2c@f9925000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c3_pins>;
-               clock-frequency = <100000>;
-               qcom,src-freq = <50000000>;
-
-               avago_apds993@39 {
-                       compatible = "avago,apds9930";
-                       reg = <0x39>;
-                       interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
-                       vdd-supply = <&pm8941_l17>;
-                       vddio-supply = <&pm8941_lvs1>;
-                       led-max-microamp = <100000>;
-                       amstaos,proximity-diodes = <0>;
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
                };
-       };
 
-       usb@f9a55000 {
-               status = "okay";
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
 
-               phys = <&usb_hs1_phy>;
-               phy-select = <&tcsr 0xb000 0>;
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
 
-               extcon = <&charger>, <&usb_id>;
-               vbus-supply = <&usb_otg_vbus>;
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
 
-               hnp-disable;
-               srp-disable;
-               adp-disable;
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
 
-               ulpi {
-                       phy@a {
-                               status = "okay";
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
 
-                               v1p8-supply = <&pm8941_l6>;
-                               v3p3-supply = <&pm8941_l24>;
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
 
-                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
-                       };
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
                };
+
+               pm8941_lvs1: lvs1 {};
+               pm8941_lvs3: lvs3 {};
        };
+};
 
-       mdss@fd900000 {
-               status = "okay";
+&sdhc_1 {
+       status = "okay";
 
-               mdp@fd900000 {
-                       status = "okay";
-               };
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
 
-               dsi@fd922800 {
-                       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
 
-                       vdda-supply = <&pm8941_l2>;
-                       vdd-supply = <&pm8941_lvs3>;
-                       vddio-supply = <&pm8941_l12>;
+&sdhc_2 {
+       status = "okay";
 
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pm8941_s3>;
+       non-removable;
 
-                       ports {
-                               port@1 {
-                                       endpoint {
-                                               remote-endpoint = <&panel_in>;
-                                               data-lanes = <0 1 2 3>;
-                                       };
-                               };
-                       };
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
 
-                       panel: panel@0 {
-                               reg = <0>;
-                               compatible = "lg,acx467akm-7";
+       bcrmf@1 {
+               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
 
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&panel_pin>;
+               brcm,drive-strength = <10>;
 
-                               port {
-                                       panel_in: endpoint {
-                                               remote-endpoint = <&dsi0_out>;
-                                       };
-                               };
-                       };
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin>;
+       };
+};
+
+&tlmm {
+       sdc1_on: sdc1-on {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
                };
 
-               dsi-phy@fd922a00 {
-                       status = "okay";
+               cmd-data {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
 
-                       vddio-supply = <&pm8941_l12>;
+       sdc2_on: sdc2-on {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
                };
        };
-};
 
-&spmi_bus {
-       pm8941@0 {
-               gpios@c000 {
-                       gpio_keys_pin_a: gpio-keys-active {
-                               pins = "gpio2", "gpio3";
-                               function = "normal";
+       mpu6515_pin: mpu6515 {
+               pins = "gpio73";
+               function = "gpio";
+               bias-disable;
+               input-enable;
+       };
 
-                               bias-pull-up;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
+       touch_pin: touch {
+               int {
+                       pins = "gpio5";
+                       function = "gpio";
 
-                       fuelgauge_pin: fuelgauge-int {
-                               pins = "gpio9";
-                               function = "normal";
+                       drive-strength = <2>;
+                       bias-disable;
+                       input-enable;
+               };
 
-                               bias-disable;
-                               input-enable;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
+               reset {
+                       pins = "gpio8";
+                       function = "gpio";
 
-                       wlan_sleep_clk_pin: wl-sleep-clk {
-                               pins = "gpio16";
-                               function = "func2";
+                       drive-strength = <2>;
+                       bias-pull-up;
+               };
+       };
 
-                               output-high;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
+       panel_pin: panel {
+               pins = "gpio12";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-disable;
+       };
 
-                       wlan_regulator_pin: wl-reg-active {
-                               pins = "gpio17";
-                               function = "normal";
+       bt_pin: bt {
+               hostwake {
+                       pins = "gpio42";
+                       function = "gpio";
+               };
 
-                               bias-disable;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
+               devwake {
+                       pins = "gpio62";
+                       function = "gpio";
+               };
 
-                       otg {
-                               gpio-hog;
-                               gpios = <35 GPIO_ACTIVE_HIGH>;
-                               output-high;
-                               line-name = "otg-gpio";
-                       };
+               shutdown {
+                       pins = "gpio41";
+                       function = "gpio";
                };
        };
 };
diff --git a/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974-samsung-klte.dts
deleted file mode 100644 (file)
index 96e1c97..0000000
+++ /dev/null
@@ -1,908 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974pro.dtsi"
-#include "qcom-pma8084.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-#include <dt-bindings/leds/common.h>
-
-/ {
-       model = "Samsung Galaxy S5";
-       compatible = "samsung,klte", "qcom,msm8974";
-
-       aliases {
-               serial0 = &blsp1_uart1;
-               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
-               mmc1 = &sdhc_2; /* SDC2 SD card slot */
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       smd {
-               rpm {
-                       rpm_requests {
-                               pma8084-regulators {
-                                       compatible = "qcom,rpm-pma8084-regulators";
-                                       status = "okay";
-
-                                       pma8084_s1: s1 {
-                                               regulator-min-microvolt = <675000>;
-                                               regulator-max-microvolt = <1050000>;
-                                               regulator-always-on;
-                                       };
-
-                                       pma8084_s2: s2 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       pma8084_s3: s3 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                       };
-
-                                       pma8084_s4: s4 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       pma8084_s5: s5 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-                                       };
-
-                                       pma8084_s6: s6 {
-                                               regulator-min-microvolt = <1050000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       pma8084_l1: l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       pma8084_l2: l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       pma8084_l3: l3 {
-                                               regulator-min-microvolt = <1050000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       pma8084_l4: l4 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       pma8084_l5: l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       pma8084_l6: l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       pma8084_l7: l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       pma8084_l8: l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       pma8084_l9: l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       pma8084_l10: l10 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       pma8084_l11: l11 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                       };
-
-                                       pma8084_l12: l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                               regulator-always-on;
-                                       };
-
-                                       pma8084_l13: l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       pma8084_l14: l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       pma8084_l15: l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       pma8084_l16: l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       pma8084_l17: l17 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       pma8084_l18: l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       pma8084_l19: l19 {
-                                               regulator-min-microvolt = <3300000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       pma8084_l20: l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-allow-set-load;
-                                               regulator-system-load = <200000>;
-                                       };
-
-                                       pma8084_l21: l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-allow-set-load;
-                                               regulator-system-load = <200000>;
-                                       };
-
-                                       pma8084_l22: l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       pma8084_l23: l23 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       pma8084_l24: l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-                                       };
-
-                                       pma8084_l25: l25 {
-                                               regulator-min-microvolt = <2100000>;
-                                               regulator-max-microvolt = <2100000>;
-                                       };
-
-                                       pma8084_l26: l26 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       pma8084_l27: l27 {
-                                               regulator-min-microvolt = <1000000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       pma8084_lvs1: lvs1 {};
-                                       pma8084_lvs2: lvs2 {};
-                                       pma8084_lvs3: lvs3 {};
-                                       pma8084_lvs4: lvs4 {};
-
-                                       pma8084_5vs1: 5vs1 {};
-                               };
-                       };
-               };
-       };
-
-       i2c-gpio-touchkey {
-               compatible = "i2c-gpio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               sda-gpios = <&msmgpio 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               scl-gpios = <&msmgpio 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c_touchkey_pins>;
-
-               touchkey@20 {
-                       compatible = "cypress,tm2-touchkey";
-                       reg = <0x20>;
-
-                       interrupt-parent = <&pma8084_gpios>;
-                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&touchkey_pin>;
-
-                       vcc-supply = <&max77826_ldo15>;
-                       vdd-supply = <&pma8084_l19>;
-
-                       linux,keycodes = <KEY_APPSELECT KEY_BACK>;
-               };
-       };
-
-       i2c-gpio-led {
-               compatible = "i2c-gpio";
-               #address-cells = <1>;
-               #size-cells = <0>;
-               scl-gpios = <&msmgpio 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               sda-gpios = <&msmgpio 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c_led_gpioex_pins>;
-
-               i2c-gpio,delay-us = <2>;
-
-               gpio_expander: gpio@20 {
-                       compatible = "nxp,pcal6416";
-                       reg = <0x20>;
-
-                       gpio-controller;
-                       #gpio-cells = <2>;
-
-                       vcc-supply = <&pma8084_s4>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&gpioex_pin>;
-
-                       reset-gpios = <&msmgpio 145 GPIO_ACTIVE_LOW>;
-               };
-
-               led-controller@30 {
-                       compatible = "panasonic,an30259a";
-                       reg = <0x30>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       led@1 {
-                               reg = <1>;
-                               function = LED_FUNCTION_STATUS;
-                               color = <LED_COLOR_ID_RED>;
-                       };
-
-                       led@2 {
-                               reg = <2>;
-                               function = LED_FUNCTION_STATUS;
-                               color = <LED_COLOR_ID_GREEN>;
-                       };
-
-                       led@3 {
-                               reg = <3>;
-                               function = LED_FUNCTION_STATUS;
-                               color = <LED_COLOR_ID_BLUE>;
-                       };
-               };
-       };
-
-       vreg_wlan: wlan-regulator {
-               compatible = "regulator-fixed";
-
-               regulator-name = "wl-reg";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
-       vreg_panel: panel-regulator {
-               compatible = "regulator-fixed";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&panel_en_pin>;
-
-               regulator-name = "panel-vddr-reg";
-               regulator-min-microvolt = <1500000>;
-               regulator-max-microvolt = <1500000>;
-
-               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-       };
-
-       /delete-node/ vreg-boost;
-
-       adsp-pil {
-               cx-supply = <&pma8084_s2>;
-       };
-};
-
-&soc {
-       serial@f991e000 {
-               status = "okay";
-       };
-
-       /* blsp2_uart8 */
-       serial@f995e000 {
-               status = "okay";
-
-               pinctrl-names = "default", "sleep";
-               pinctrl-0 = <&blsp2_uart8_pins_active>;
-               pinctrl-1 = <&blsp2_uart8_pins_sleep>;
-
-               bluetooth {
-                       compatible = "brcm,bcm43540-bt";
-                       max-speed = <3000000>;
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&bt_pins>;
-                       device-wakeup-gpios = <&msmgpio 91 GPIO_ACTIVE_HIGH>;
-                       shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
-                       interrupt-parent = <&msmgpio>;
-                       interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "host-wakeup";
-               };
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               volume-down {
-                       label = "volume_down";
-                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       debounce-interval = <15>;
-               };
-
-               home-key {
-                       label = "home_key";
-                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_HOMEPAGE>;
-                       wakeup-source;
-                       debounce-interval = <15>;
-               };
-
-               volume-up {
-                       label = "volume_up";
-                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-                       debounce-interval = <15>;
-               };
-       };
-
-       pinctrl@fd510000 {
-               blsp2_uart8_pins_active: blsp2-uart8-pins-active {
-                       pins = "gpio45", "gpio46", "gpio47", "gpio48";
-                       function = "blsp_uart8";
-                       drive-strength = <8>;
-                       bias-disable;
-               };
-
-               blsp2_uart8_pins_sleep: blsp2-uart8-pins-sleep {
-                       pins = "gpio45", "gpio46", "gpio47", "gpio48";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-pull-down;
-               };
-
-               bt_pins: bt-pins {
-                       hostwake {
-                               pins = "gpio75";
-                               function = "gpio";
-                               drive-strength = <16>;
-                               input-enable;
-                       };
-
-                       devwake {
-                               pins = "gpio91";
-                               function = "gpio";
-                               drive-strength = <2>;
-                       };
-               };
-
-               sdhc1_pin_a: sdhc1-pin-active {
-                       clk {
-                               pins = "sdc1_clk";
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc1_cmd", "sdc1_data";
-                               drive-strength = <4>;
-                               bias-pull-up;
-                       };
-               };
-
-               sdhc2_pin_a: sdhc2-pin-active {
-                       clk-cmd-data {
-                               pins = "gpio35", "gpio36", "gpio37", "gpio38",
-                                       "gpio39", "gpio40";
-                               function = "sdc3";
-                               drive-strength = <8>;
-                               bias-disable;
-                       };
-               };
-
-               sdhc2_cd_pin: sdhc2-cd {
-                       pins = "gpio62";
-                       function = "gpio";
-
-                       drive-strength = <2>;
-                       bias-disable;
-               };
-
-               sdhc3_pin_a: sdhc3-pin-active {
-                       clk {
-                               pins = "sdc2_clk";
-                               drive-strength = <6>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc2_cmd", "sdc2_data";
-                               drive-strength = <6>;
-                               bias-pull-up;
-                       };
-               };
-
-               i2c2_pins: i2c2 {
-                       mux {
-                               pins = "gpio6", "gpio7";
-                               function = "blsp_i2c2";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               i2c6_pins: i2c6 {
-                       mux {
-                               pins = "gpio29", "gpio30";
-                               function = "blsp_i2c6";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               i2c12_pins: i2c12 {
-                       mux {
-                               pins = "gpio87", "gpio88";
-                               function = "blsp_i2c12";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               i2c_touchkey_pins: i2c-touchkey {
-                       mux {
-                               pins = "gpio95", "gpio96";
-                               function = "gpio";
-                               input-enable;
-                               bias-pull-up;
-                       };
-               };
-
-               i2c_led_gpioex_pins: i2c-led-gpioex {
-                       mux {
-                               pins = "gpio120", "gpio121";
-                               function = "gpio";
-                               input-enable;
-                               bias-pull-down;
-                       };
-               };
-
-               gpioex_pin: gpioex {
-                       res {
-                               pins = "gpio145";
-                               function = "gpio";
-
-                               bias-pull-up;
-                               drive-strength = <2>;
-                       };
-               };
-
-               wifi_pin: wifi {
-                       int {
-                               pins = "gpio92";
-                               function = "gpio";
-
-                               input-enable;
-                               bias-pull-down;
-                       };
-               };
-
-               panel_te_pin: panel {
-                       te {
-                               pins = "gpio12";
-                               function = "mdp_vsync";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-       };
-
-       sdhc_1: sdhci@f9824900 {
-               status = "okay";
-
-               vmmc-supply = <&pma8084_l20>;
-               vqmmc-supply = <&pma8084_s4>;
-
-               bus-width = <8>;
-               non-removable;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc1_pin_a>;
-       };
-
-       sdhc_2: sdhci@f9864900 {
-               status = "okay";
-
-               max-frequency = <100000000>;
-
-               vmmc-supply = <&pma8084_l21>;
-               vqmmc-supply = <&pma8084_l13>;
-
-               bus-width = <4>;
-
-               /* cd-gpio is intentionally disabled. If enabled, an SD card
-                * present during boot is not initialized correctly. Without
-                * cd-gpios the driver resorts to polling, so hotplug works.
-                */
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc2_pin_a /* &sdhc2_cd_pin */>;
-               // cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
-       };
-
-       sdhci@f98a4900 {
-               status = "okay";
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               max-frequency = <100000000>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc3_pin_a>;
-
-               vmmc-supply = <&vreg_wlan>;
-               vqmmc-supply = <&pma8084_s4>;
-
-               bus-width = <4>;
-               non-removable;
-
-               wifi@1 {
-                       reg = <1>;
-                       compatible = "brcm,bcm4329-fmac";
-
-                       interrupt-parent = <&msmgpio>;
-                       interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "host-wake";
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
-               };
-       };
-
-       usb@f9a55000 {
-               status = "okay";
-
-               phys = <&usb_hs1_phy>;
-               phy-select = <&tcsr 0xb000 0>;
-               /*extcon = <&smbb>, <&usb_id>;*/
-               /*vbus-supply = <&chg_otg>;*/
-
-               hnp-disable;
-               srp-disable;
-               adp-disable;
-
-               ulpi {
-                       phy@a {
-                               status = "okay";
-
-                               v1p8-supply = <&pma8084_l6>;
-                               v3p3-supply = <&pma8084_l24>;
-
-                               /*extcon = <&smbb>;*/
-                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
-                       };
-               };
-       };
-
-       i2c@f9924000 {
-               status = "okay";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c2_pins>;
-
-               touchscreen@20 {
-                       compatible = "syna,rmi4-i2c";
-                       reg = <0x20>;
-
-                       interrupt-parent = <&pma8084_gpios>;
-                       interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
-
-                       vdd-supply = <&max77826_ldo13>;
-                       vio-supply = <&pma8084_lvs2>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&touch_pin>;
-
-                       syna,startup-delay-ms = <100>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       rmi4-f01@1 {
-                               reg = <0x1>;
-                               syna,nosleep-mode = <1>;
-                       };
-
-                       rmi4-f12@12 {
-                               reg = <0x12>;
-                               syna,sensor-type = <1>;
-                       };
-               };
-       };
-
-       i2c@f9928000 {
-               status = "okay";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c6_pins>;
-
-               pmic@60 {
-                       reg = <0x60>;
-                       compatible = "maxim,max77826";
-
-                       regulators {
-                               max77826_ldo1: LDO1 {
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                               };
-
-                               max77826_ldo2: LDO2 {
-                                       regulator-min-microvolt = <1000000>;
-                                       regulator-max-microvolt = <1000000>;
-                               };
-
-                               max77826_ldo3: LDO3 {
-                                       regulator-min-microvolt = <1200000>;
-                                       regulator-max-microvolt = <1200000>;
-                               };
-
-                               max77826_ldo4: LDO4 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               max77826_ldo5: LDO5 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               max77826_ldo6: LDO6 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               max77826_ldo7: LDO7 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               max77826_ldo8: LDO8 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               max77826_ldo9: LDO9 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               max77826_ldo10: LDO10 {
-                                       regulator-min-microvolt = <2800000>;
-                                       regulator-max-microvolt = <2950000>;
-                               };
-
-                               max77826_ldo11: LDO11 {
-                                       regulator-min-microvolt = <2700000>;
-                                       regulator-max-microvolt = <2950000>;
-                               };
-
-                               max77826_ldo12: LDO12 {
-                                       regulator-min-microvolt = <2500000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               max77826_ldo13: LDO13 {
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               max77826_ldo14: LDO14 {
-                                       regulator-min-microvolt = <3300000>;
-                                       regulator-max-microvolt = <3300000>;
-                               };
-
-                               max77826_ldo15: LDO15 {
-                                       regulator-min-microvolt = <1800000>;
-                                       regulator-max-microvolt = <1800000>;
-                               };
-
-                               max77826_buck: BUCK {
-                                       regulator-min-microvolt = <1225000>;
-                                       regulator-max-microvolt = <1225000>;
-                               };
-
-                               max77826_buckboost: BUCKBOOST {
-                                       regulator-min-microvolt = <3400000>;
-                                       regulator-max-microvolt = <3400000>;
-                               };
-                       };
-               };
-       };
-
-       i2c@f9968000 {
-               status = "okay";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c12_pins>;
-
-               fuelgauge@36 {
-                       compatible = "maxim,max17048";
-                       reg = <0x36>;
-
-                       maxim,double-soc;
-                       maxim,rcomp = /bits/ 8 <0x56>;
-
-                       interrupt-parent = <&pma8084_gpios>;
-                       interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&fuelgauge_pin>;
-               };
-       };
-
-       adreno@fdb00000 {
-               status = "ok";
-       };
-
-       mdss@fd900000 {
-               status = "ok";
-
-               mdp@fd900000 {
-                       status = "ok";
-               };
-
-               dsi@fd922800 {
-                       status = "ok";
-
-                       vdda-supply = <&pma8084_l2>;
-                       vdd-supply = <&pma8084_l22>;
-                       vddio-supply = <&pma8084_l12>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       ports {
-                               port@1 {
-                                       endpoint {
-                                               remote-endpoint = <&panel_in>;
-                                               data-lanes = <0 1 2 3>;
-                                       };
-                               };
-                       };
-
-                       panel: panel@0 {
-                               reg = <0>;
-                               compatible = "samsung,s6e3fa2";
-
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
-
-                               iovdd-supply = <&pma8084_lvs4>;
-                               vddr-supply = <&vreg_panel>;
-
-                               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
-                               te-gpios = <&msmgpio 12 GPIO_ACTIVE_HIGH>;
-
-                               port {
-                                       panel_in: endpoint {
-                                               remote-endpoint = <&dsi0_out>;
-                                       };
-                               };
-                       };
-               };
-
-               dsi-phy@fd922a00 {
-                       status = "ok";
-
-                       vddio-supply = <&pma8084_l12>;
-               };
-       };
-
-       remoteproc@fc880000 {
-               cx-supply = <&pma8084_s2>;
-               mss-supply = <&pma8084_s6>;
-               mx-supply = <&pma8084_s1>;
-               pll-supply = <&pma8084_l12>;
-       };
-};
-
-&spmi_bus {
-       pma8084@0 {
-               gpios@c000 {
-                       gpio_keys_pin_a: gpio-keys-active {
-                               pins = "gpio2", "gpio3", "gpio5";
-                               function = "normal";
-
-                               bias-pull-up;
-                               power-source = <PMA8084_GPIO_S4>;
-                       };
-
-                       touchkey_pin: touchkey-int-pin {
-                               pins = "gpio6";
-                               function = "normal";
-                               bias-disable;
-                               input-enable;
-                               power-source = <PMA8084_GPIO_S4>;
-                       };
-
-                       touch_pin: touchscreen-int-pin {
-                               pins = "gpio8";
-                               function = "normal";
-                               bias-disable;
-                               input-enable;
-                               power-source = <PMA8084_GPIO_S4>;
-                       };
-
-                       panel_en_pin: panel-en-pin {
-                               pins = "gpio14";
-                               function = "normal";
-                               bias-pull-up;
-                               power-source = <PMA8084_GPIO_S4>;
-                               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-                       };
-
-                       wlan_sleep_clk_pin: wlan-sleep-clk-pin {
-                               pins = "gpio16";
-                               function = "func2";
-
-                               output-high;
-                               power-source = <PMA8084_GPIO_S4>;
-                               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
-                       };
-
-                       panel_rst_pin: panel-rst-pin {
-                               pins = "gpio17";
-                               function = "normal";
-                               bias-disable;
-                               power-source = <PMA8084_GPIO_S4>;
-                               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-                       };
-
-
-                       fuelgauge_pin: fuelgauge-int-pin {
-                               pins = "gpio21";
-                               function = "normal";
-                               bias-disable;
-                               input-enable;
-                               power-source = <PMA8084_GPIO_S4>;
-                       };
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-amami.dts
deleted file mode 100644 (file)
index 79e2cfb..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-
-/ {
-       model = "Sony Xperia Z1 Compact";
-       compatible = "sony,xperia-amami", "qcom,msm8974";
-
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-               };
-
-               camera-snapshot {
-                       label = "camera_snapshot";
-                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA>;
-               };
-
-               camera-focus {
-                       label = "camera_focus";
-                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
-               };
-
-               volume-up {
-                       label = "volume_up";
-                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-               };
-       };
-
-       memory@0 {
-               reg = <0 0x40000000>, <0x40000000 0x40000000>;
-               device_type = "memory";
-       };
-
-       smd {
-               rpm {
-                       rpm_requests {
-                               pm8841-regulators {
-                                       s1 {
-                                               regulator-min-microvolt = <675000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-                               };
-
-                               pm8941-regulators {
-                                       vdd_l1_l3-supply = <&pm8941_s1>;
-                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-                                       vdd_l4_l11-supply = <&pm8941_s1>;
-                                       vdd_l5_l7-supply = <&pm8941_s2>;
-                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
-                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
-                                       vdd_l21-supply = <&vreg_boost>;
-
-                                       s1 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-                                               regulator-boot-on;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <5000000>;
-                                               regulator-max-microvolt = <5000000>;
-                                       };
-
-                                       l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l3 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l4 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l11 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1350000>;
-                                       };
-
-                                       l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l17 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l19 {
-                                               regulator-min-microvolt = <3300000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-allow-set-load;
-                                               regulator-boot-on;
-                                               regulator-system-load = <200000>;
-                                       };
-
-                                       l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l23 {
-                                               regulator-min-microvolt = <2800000>;
-                                               regulator-max-microvolt = <2800000>;
-                                       };
-
-                                       l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-
-                                               regulator-boot-on;
-                                       };
-                               };
-                       };
-               };
-       };
-};
-
-&soc {
-       sdhci@f9824900 {
-               status = "okay";
-
-               vmmc-supply = <&pm8941_l20>;
-               vqmmc-supply = <&pm8941_s3>;
-
-               bus-width = <8>;
-               non-removable;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc1_pin_a>;
-       };
-
-       sdhci@f98a4900 {
-               status = "okay";
-
-               bus-width = <4>;
-
-               vmmc-supply = <&pm8941_l21>;
-               vqmmc-supply = <&pm8941_l13>;
-
-               cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
-       };
-
-       serial@f991e000 {
-               status = "okay";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&blsp1_uart2_pin_a>;
-       };
-
-
-       pinctrl@fd510000 {
-               blsp1_uart2_pin_a: blsp1-uart2-pin-active {
-                       rx {
-                               pins = "gpio5";
-                               function = "blsp_uart2";
-
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
-                       tx {
-                               pins = "gpio4";
-                               function = "blsp_uart2";
-
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-               };
-
-               i2c2_pins: i2c2 {
-                       mux {
-                               pins = "gpio6", "gpio7";
-                               function = "blsp_i2c2";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               sdhc1_pin_a: sdhc1-pin-active {
-                       clk {
-                               pins = "sdc1_clk";
-                               drive-strength = <16>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc1_cmd", "sdc1_data";
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-               };
-
-               sdhc2_cd_pin_a: sdhc2-cd-pin-active {
-                       pins = "gpio62";
-                       function = "gpio";
-
-                       drive-strength = <2>;
-                       bias-disable;
-                };
-
-               sdhc2_pin_a: sdhc2-pin-active {
-                       clk {
-                               pins = "sdc2_clk";
-                               drive-strength = <10>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc2_cmd", "sdc2_data";
-                               drive-strength = <6>;
-                               bias-pull-up;
-                       };
-               };
-       };
-
-       dma-controller@f9944000 {
-               qcom,controlled-remotely;
-       };
-
-       usb@f9a55000 {
-               status = "okay";
-
-               phys = <&usb_hs1_phy>;
-               phy-select = <&tcsr 0xb000 0>;
-               extcon = <&smbb>, <&usb_id>;
-               vbus-supply = <&chg_otg>;
-
-               hnp-disable;
-               srp-disable;
-               adp-disable;
-
-               ulpi {
-                       phy@a {
-                               status = "okay";
-
-                               v1p8-supply = <&pm8941_l6>;
-                               v3p3-supply = <&pm8941_l24>;
-
-                               extcon = <&smbb>;
-                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
-                       };
-               };
-       };
-};
-
-&spmi_bus {
-       pm8941@0 {
-               charger@1000 {
-                       qcom,fast-charge-safe-current = <1300000>;
-                       qcom,fast-charge-current-limit = <1300000>;
-                       qcom,dc-current-limit = <1300000>;
-                       qcom,fast-charge-safe-voltage = <4400000>;
-                       qcom,fast-charge-high-threshold-voltage = <4350000>;
-                       qcom,fast-charge-low-threshold-voltage = <3400000>;
-                       qcom,auto-recharge-threshold-voltage = <4200000>;
-                       qcom,minimum-input-voltage = <4300000>;
-               };
-
-               gpios@c000 {
-                       gpio_keys_pin_a: gpio-keys-active {
-                               pins = "gpio2", "gpio3", "gpio4", "gpio5";
-                               function = "normal";
-
-                               bias-pull-up;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-               };
-
-               coincell@2800 {
-                       status = "okay";
-                       qcom,rset-ohms = <2100>;
-                       qcom,vset-millivolts = <3000>;
-               };
-       };
-
-       pm8941@1 {
-               wled@d800 {
-                       status = "okay";
-
-                       qcom,cs-out;
-                       qcom,current-limit = <20>;
-                       qcom,current-boost-limit = <805>;
-                       qcom,switching-freq = <1600>;
-                       qcom,ovp = <29>;
-                       qcom,num-strings = <2>;
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-castor.dts
deleted file mode 100644 (file)
index e66937e..0000000
+++ /dev/null
@@ -1,723 +0,0 @@
-#include "qcom-msm8974pro.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-
-/ {
-       model = "Sony Xperia Z2 Tablet";
-       compatible = "sony,xperia-castor", "qcom,msm8974";
-
-       aliases {
-               serial0 = &blsp1_uart2;
-               serial1 = &blsp2_uart7;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-               };
-
-               camera-snapshot {
-                       label = "camera_snapshot";
-                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA>;
-               };
-
-               camera-focus {
-                       label = "camera_focus";
-                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
-               };
-
-               volume-up {
-                       label = "volume_up";
-                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-               };
-       };
-
-       smd {
-               rpm {
-                       rpm_requests {
-                               pm8941-regulators {
-                                       vdd_l1_l3-supply = <&pm8941_s1>;
-                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-                                       vdd_l4_l11-supply = <&pm8941_s1>;
-                                       vdd_l5_l7-supply = <&pm8941_s2>;
-                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
-                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
-                                       vdd_l21-supply = <&vreg_boost>;
-
-                                       s1 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-                                               regulator-boot-on;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-
-                                               regulator-system-load = <154000>;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <5000000>;
-                                               regulator-max-microvolt = <5000000>;
-                                       };
-
-                                       l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l3 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l4 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l11 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1350000>;
-                                       };
-
-                                       l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l17 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l19 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-allow-set-load;
-                                               regulator-boot-on;
-                                               regulator-allow-set-load;
-                                               regulator-system-load = <500000>;
-                                       };
-
-                                       l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l23 {
-                                               regulator-min-microvolt = <2800000>;
-                                               regulator-max-microvolt = <2800000>;
-                                       };
-
-                                       l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-
-                                               regulator-boot-on;
-                                       };
-                               };
-                       };
-               };
-       };
-
-       vreg_bl_vddio: lcd-backlight-vddio {
-               compatible = "regulator-fixed";
-               regulator-name = "vreg_bl_vddio";
-               regulator-min-microvolt = <3150000>;
-               regulator-max-microvolt = <3150000>;
-
-               gpio = <&msmgpio 69 0>;
-               enable-active-high;
-
-               vin-supply = <&pm8941_s3>;
-               startup-delay-us = <70000>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&lcd_backlight_en_pin_a>;
-       };
-
-       vreg_vsp: lcd-dcdc-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "vreg_vsp";
-               regulator-min-microvolt = <5600000>;
-               regulator-max-microvolt = <5600000>;
-
-               gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&lcd_dcdc_en_pin_a>;
-       };
-
-       vreg_wlan: wlan-regulator {
-               compatible = "regulator-fixed";
-
-               regulator-name = "wl-reg";
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&wlan_regulator_pin>;
-       };
-};
-
-&soc {
-       sdhci@f9824900 {
-               status = "okay";
-
-               vmmc-supply = <&pm8941_l20>;
-               vqmmc-supply = <&pm8941_s3>;
-
-               bus-width = <8>;
-               non-removable;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc1_pin_a>;
-       };
-
-       sdhci@f9864900 {
-               status = "okay";
-
-               max-frequency = <100000000>;
-               non-removable;
-               vmmc-supply = <&vreg_wlan>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc3_pin_a>;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               bcrmf@1 {
-                       compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
-                       reg = <1>;
-
-                       brcm,drive-strength = <10>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&wlan_sleep_clk_pin>;
-               };
-       };
-
-       sdhci@f98a4900 {
-               status = "okay";
-
-               bus-width = <4>;
-
-               vmmc-supply = <&pm8941_l21>;
-               vqmmc-supply = <&pm8941_l13>;
-
-               cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
-       };
-
-       serial@f991e000 {
-               status = "okay";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&blsp1_uart2_pin_a>;
-       };
-
-       serial@f995d000 {
-               status = "ok";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&blsp2_uart7_pin_a>;
-
-               bluetooth {
-                       compatible = "brcm,bcm43438-bt";
-                       max-speed = <3000000>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&bt_host_wake_pin>,
-                                   <&bt_dev_wake_pin>,
-                                   <&bt_reg_on_pin>;
-
-                       host-wakeup-gpios = <&msmgpio 95 GPIO_ACTIVE_HIGH>;
-                       device-wakeup-gpios = <&msmgpio 96 GPIO_ACTIVE_HIGH>;
-                       shutdown-gpios = <&pm8941_gpios 16 GPIO_ACTIVE_HIGH>;
-               };
-       };
-
-       usb@f9a55000 {
-               status = "okay";
-
-               phys = <&usb_hs1_phy>;
-               phy-select = <&tcsr 0xb000 0>;
-               extcon = <&smbb>, <&usb_id>;
-               vbus-supply = <&chg_otg>;
-
-               hnp-disable;
-               srp-disable;
-               adp-disable;
-
-               ulpi {
-                       phy@a {
-                               status = "okay";
-
-                               v1p8-supply = <&pm8941_l6>;
-                               v3p3-supply = <&pm8941_l24>;
-
-                               extcon = <&smbb>;
-                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
-                       };
-               };
-       };
-
-       pinctrl@fd510000 {
-               blsp1_uart2_pin_a: blsp1-uart2-pin-active {
-                       rx {
-                               pins = "gpio5";
-                               function = "blsp_uart2";
-
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
-                       tx {
-                               pins = "gpio4";
-                               function = "blsp_uart2";
-
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-               };
-
-               blsp2_uart7_pin_a: blsp2-uart7-pin-active {
-                       tx {
-                               pins = "gpio41";
-                               function = "blsp_uart7";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-
-                       rx {
-                               pins = "gpio42";
-                               function = "blsp_uart7";
-
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
-                       cts {
-                               pins = "gpio43";
-                               function = "blsp_uart7";
-
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
-                       rts {
-                               pins = "gpio44";
-                               function = "blsp_uart7";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               i2c8_pins: i2c8 {
-                       mux {
-                               pins = "gpio47", "gpio48";
-                               function = "blsp_i2c8";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               i2c11_pins: i2c11 {
-                       mux {
-                               pins = "gpio83", "gpio84";
-                               function = "blsp_i2c11";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               lcd_backlight_en_pin_a: lcd-backlight-vddio {
-                       pins = "gpio69";
-                       drive-strength = <10>;
-                       output-low;
-                       bias-disable;
-               };
-
-               sdhc1_pin_a: sdhc1-pin-active {
-                       clk {
-                               pins = "sdc1_clk";
-                               drive-strength = <16>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc1_cmd", "sdc1_data";
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-               };
-
-               sdhc2_cd_pin_a: sdhc2-cd-pin-active {
-                       pins = "gpio62";
-                       function = "gpio";
-
-                       drive-strength = <2>;
-                       bias-disable;
-                };
-
-               sdhc2_pin_a: sdhc2-pin-active {
-                       clk {
-                               pins = "sdc2_clk";
-                               drive-strength = <6>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc2_cmd", "sdc2_data";
-                               drive-strength = <6>;
-                               bias-pull-up;
-                       };
-               };
-
-               sdhc3_pin_a: sdhc3-pin-active {
-                       clk {
-                               pins = "gpio40";
-                               function = "sdc3";
-
-                               drive-strength = <10>;
-                               bias-disable;
-                       };
-
-                       cmd {
-                               pins = "gpio39";
-                               function = "sdc3";
-
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-
-                       data {
-                               pins = "gpio35", "gpio36", "gpio37", "gpio38";
-                               function = "sdc3";
-
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-               };
-
-               ts_int_pin: synaptics {
-                       pin {
-                               pins = "gpio86";
-                               function = "gpio";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                               input-enable;
-                       };
-               };
-
-               bt_host_wake_pin: bt-host-wake {
-                       pins = "gpio95";
-                       function = "gpio";
-
-                       drive-strength = <2>;
-                       bias-disable;
-                       output-low;
-               };
-
-               bt_dev_wake_pin: bt-dev-wake {
-                       pins = "gpio96";
-                       function = "gpio";
-
-                       drive-strength = <2>;
-                       bias-disable;
-               };
-       };
-
-       i2c@f9964000 {
-               status = "okay";
-
-               clock-frequency = <355000>;
-               qcom,src-freq = <50000000>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c8_pins>;
-
-               synaptics@2c {
-                       compatible = "syna,rmi4-i2c";
-                       reg = <0x2c>;
-
-                       interrupt-parent = <&msmgpio>;
-                       interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vdd-supply = <&pm8941_l22>;
-                       vio-supply = <&pm8941_lvs3>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&ts_int_pin>;
-
-                       syna,startup-delay-ms = <10>;
-
-                       rmi-f01@1 {
-                               reg = <0x1>;
-                               syna,nosleep = <1>;
-                       };
-
-                       rmi-f11@11 {
-                               reg = <0x11>;
-                               syna,f11-flip-x = <1>;
-                               syna,sensor-type = <1>;
-                       };
-               };
-       };
-
-       i2c@f9967000 {
-               status = "okay";
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c11_pins>;
-               clock-frequency = <355000>;
-               qcom,src-freq = <50000000>;
-
-               lp8566_wled: backlight@2c {
-                       compatible = "ti,lp8556";
-                       reg = <0x2c>;
-                       power-supply = <&vreg_bl_vddio>;
-
-                       bl-name = "backlight";
-                       dev-ctrl = /bits/ 8 <0x05>;
-                       init-brt = /bits/ 8 <0x3f>;
-                       rom_a0h {
-                               rom-addr = /bits/ 8 <0xa0>;
-                               rom-val = /bits/ 8 <0xff>;
-                       };
-                       rom_a1h {
-                               rom-addr = /bits/ 8 <0xa1>;
-                               rom-val = /bits/ 8 <0x3f>;
-                       };
-                       rom_a2h {
-                               rom-addr = /bits/ 8 <0xa2>;
-                               rom-val = /bits/ 8 <0x20>;
-                       };
-                       rom_a3h {
-                               rom-addr = /bits/ 8 <0xa3>;
-                               rom-val = /bits/ 8 <0x5e>;
-                       };
-                       rom_a4h {
-                               rom-addr = /bits/ 8 <0xa4>;
-                               rom-val = /bits/ 8 <0x02>;
-                       };
-                       rom_a5h {
-                               rom-addr = /bits/ 8 <0xa5>;
-                               rom-val = /bits/ 8 <0x04>;
-                       };
-                       rom_a6h {
-                               rom-addr = /bits/ 8 <0xa6>;
-                               rom-val = /bits/ 8 <0x80>;
-                       };
-                       rom_a7h {
-                               rom-addr = /bits/ 8 <0xa7>;
-                               rom-val = /bits/ 8 <0xf7>;
-                       };
-                       rom_a9h {
-                               rom-addr = /bits/ 8 <0xa9>;
-                               rom-val = /bits/ 8 <0x80>;
-                       };
-                       rom_aah {
-                               rom-addr = /bits/ 8 <0xaa>;
-                               rom-val = /bits/ 8 <0x0f>;
-                       };
-                       rom_aeh {
-                               rom-addr = /bits/ 8 <0xae>;
-                               rom-val = /bits/ 8 <0x0f>;
-                       };
-               };
-       };
-};
-
-&spmi_bus {
-       pm8941@0 {
-               charger@1000 {
-                       qcom,fast-charge-safe-current = <1500000>;
-                       qcom,fast-charge-current-limit = <1500000>;
-                       qcom,dc-current-limit = <1800000>;
-                       qcom,fast-charge-safe-voltage = <4400000>;
-                       qcom,fast-charge-high-threshold-voltage = <4350000>;
-                       qcom,fast-charge-low-threshold-voltage = <3400000>;
-                       qcom,auto-recharge-threshold-voltage = <4200000>;
-                       qcom,minimum-input-voltage = <4300000>;
-               };
-
-               gpios@c000 {
-                       gpio_keys_pin_a: gpio-keys-active {
-                               pins = "gpio2", "gpio5";
-                               function = "normal";
-
-                               bias-pull-up;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-
-                       bt_reg_on_pin: bt-reg-on {
-                               pins = "gpio16";
-                               function = "normal";
-
-                               output-low;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-
-                       wlan_sleep_clk_pin: wl-sleep-clk {
-                               pins = "gpio17";
-                               function = "func2";
-
-                               output-high;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-
-                       wlan_regulator_pin: wl-reg-active {
-                               pins = "gpio18";
-                               function = "normal";
-
-                               bias-disable;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-
-                       lcd_dcdc_en_pin_a: lcd-dcdc-en-active {
-                               pins = "gpio20";
-                               function = "normal";
-
-                               bias-disable;
-                               power-source = <PM8941_GPIO_S3>;
-                               input-disable;
-                               output-low;
-                       };
-
-               };
-
-               coincell@2800 {
-                       status = "okay";
-                       qcom,rset-ohms = <2100>;
-                       qcom,vset-millivolts = <3000>;
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts
deleted file mode 100644 (file)
index a62e5c2..0000000
+++ /dev/null
@@ -1,484 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974.dtsi"
-#include "qcom-pm8841.dtsi"
-#include "qcom-pm8941.dtsi"
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-
-/ {
-       model = "Sony Xperia Z1";
-       compatible = "sony,xperia-honami", "qcom,msm8974";
-
-       aliases {
-               serial0 = &blsp1_uart2;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&gpio_keys_pin_a>;
-
-               volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-               };
-
-               camera-snapshot {
-                       label = "camera_snapshot";
-                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA>;
-               };
-
-               camera-focus {
-                       label = "camera_focus";
-                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
-               };
-
-               volume-up {
-                       label = "volume_up";
-                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEUP>;
-               };
-       };
-
-       memory@0 {
-               reg = <0 0x40000000>, <0x40000000 0x40000000>;
-               device_type = "memory";
-       };
-
-       smd {
-               rpm {
-                       rpm_requests {
-                               pm8841-regulators {
-                                       s1 {
-                                               regulator-min-microvolt = <675000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <500000>;
-                                               regulator-max-microvolt = <1050000>;
-                                       };
-                               };
-
-                               pm8941-regulators {
-                                       vdd_l1_l3-supply = <&pm8941_s1>;
-                                       vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
-                                       vdd_l4_l11-supply = <&pm8941_s1>;
-                                       vdd_l5_l7-supply = <&pm8941_s2>;
-                                       vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
-                                       vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
-                                       vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
-                                       vdd_l21-supply = <&vreg_boost>;
-
-                                       s1 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1300000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s2 {
-                                               regulator-min-microvolt = <2150000>;
-                                               regulator-max-microvolt = <2150000>;
-                                               regulator-boot-on;
-                                       };
-
-                                       s3 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       s4 {
-                                               regulator-min-microvolt = <5000000>;
-                                               regulator-max-microvolt = <5000000>;
-                                       };
-
-                                       l1 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l2 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l3 {
-                                               regulator-min-microvolt = <1200000>;
-                                               regulator-max-microvolt = <1200000>;
-                                       };
-
-                                       l4 {
-                                               regulator-min-microvolt = <1225000>;
-                                               regulator-max-microvolt = <1225000>;
-                                       };
-
-                                       l5 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l6 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l7 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l8 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l9 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-                                       };
-
-                                       l11 {
-                                               regulator-min-microvolt = <1300000>;
-                                               regulator-max-microvolt = <1350000>;
-                                       };
-
-                                       l12 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-
-                                               regulator-always-on;
-                                               regulator-boot-on;
-                                       };
-
-                                       l13 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l14 {
-                                               regulator-min-microvolt = <1800000>;
-                                               regulator-max-microvolt = <1800000>;
-                                       };
-
-                                       l15 {
-                                               regulator-min-microvolt = <2050000>;
-                                               regulator-max-microvolt = <2050000>;
-                                       };
-
-                                       l16 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l17 {
-                                               regulator-min-microvolt = <2700000>;
-                                               regulator-max-microvolt = <2700000>;
-                                       };
-
-                                       l18 {
-                                               regulator-min-microvolt = <2850000>;
-                                               regulator-max-microvolt = <2850000>;
-                                       };
-
-                                       l19 {
-                                               regulator-min-microvolt = <3300000>;
-                                               regulator-max-microvolt = <3300000>;
-                                       };
-
-                                       l20 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-allow-set-load;
-                                               regulator-boot-on;
-                                               regulator-system-load = <200000>;
-                                       };
-
-                                       l21 {
-                                               regulator-min-microvolt = <2950000>;
-                                               regulator-max-microvolt = <2950000>;
-
-                                               regulator-boot-on;
-                                       };
-
-                                       l22 {
-                                               regulator-min-microvolt = <3000000>;
-                                               regulator-max-microvolt = <3000000>;
-                                       };
-
-                                       l23 {
-                                               regulator-min-microvolt = <2800000>;
-                                               regulator-max-microvolt = <2800000>;
-                                       };
-
-                                       l24 {
-                                               regulator-min-microvolt = <3075000>;
-                                               regulator-max-microvolt = <3075000>;
-
-                                               regulator-boot-on;
-                                       };
-                               };
-                       };
-               };
-       };
-};
-
-&soc {
-       usb@f9a55000 {
-               status = "okay";
-
-               phys = <&usb_hs1_phy>;
-               phy-select = <&tcsr 0xb000 0>;
-               extcon = <&smbb>, <&usb_id>;
-               vbus-supply = <&chg_otg>;
-
-               hnp-disable;
-               srp-disable;
-               adp-disable;
-
-               ulpi {
-                       phy@a {
-                               status = "okay";
-
-                               v1p8-supply = <&pm8941_l6>;
-                               v3p3-supply = <&pm8941_l24>;
-
-                               extcon = <&smbb>;
-                               qcom,init-seq = /bits/ 8 <0x1 0x64>;
-                       };
-               };
-       };
-
-       sdhci@f9824900 {
-               status = "okay";
-
-               vmmc-supply = <&pm8941_l20>;
-               vqmmc-supply = <&pm8941_s3>;
-
-               bus-width = <8>;
-               non-removable;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc1_pin_a>;
-       };
-
-       sdhci@f98a4900 {
-               status = "okay";
-
-               bus-width = <4>;
-
-               vmmc-supply = <&pm8941_l21>;
-               vqmmc-supply = <&pm8941_l13>;
-
-               cd-gpios = <&msmgpio 62 GPIO_ACTIVE_LOW>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
-       };
-
-       serial@f991e000 {
-               status = "okay";
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&blsp1_uart2_pin_a>;
-       };
-
-       i2c@f9924000 {
-               status = "okay";
-
-               clock-frequency = <355000>;
-               qcom,src-freq = <50000000>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&i2c2_pins>;
-
-               synaptics@2c {
-                       compatible = "syna,rmi4-i2c";
-                       reg = <0x2c>;
-
-                       interrupts-extended = <&msmgpio 61 IRQ_TYPE_EDGE_FALLING>;
-
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vdd-supply = <&pm8941_l22>;
-                       vio-supply = <&pm8941_lvs3>;
-
-                       pinctrl-names = "default";
-                       pinctrl-0 = <&ts_int_pin>;
-
-                       syna,startup-delay-ms = <10>;
-
-                       rmi4-f01@1 {
-                               reg = <0x1>;
-                               syna,nosleep-mode = <1>;
-                       };
-
-                       rmi4-f11@11 {
-                               reg = <0x11>;
-                               touchscreen-inverted-x;
-                               syna,sensor-type = <1>;
-                       };
-               };
-       };
-
-       pinctrl@fd510000 {
-               blsp1_uart2_pin_a: blsp1-uart2-pin-active {
-                       rx {
-                               pins = "gpio5";
-                               function = "blsp_uart2";
-
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
-
-                       tx {
-                               pins = "gpio4";
-                               function = "blsp_uart2";
-
-                               drive-strength = <4>;
-                               bias-disable;
-                       };
-               };
-
-               i2c2_pins: i2c2 {
-                       mux {
-                               pins = "gpio6", "gpio7";
-                               function = "blsp_i2c2";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                       };
-               };
-
-               sdhc1_pin_a: sdhc1-pin-active {
-                       clk {
-                               pins = "sdc1_clk";
-                               drive-strength = <16>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc1_cmd", "sdc1_data";
-                               drive-strength = <10>;
-                               bias-pull-up;
-                       };
-               };
-
-               sdhc2_cd_pin_a: sdhc2-cd-pin-active {
-                       pins = "gpio62";
-                       function = "gpio";
-
-                       drive-strength = <2>;
-                       bias-disable;
-                };
-
-               sdhc2_pin_a: sdhc2-pin-active {
-                       clk {
-                               pins = "sdc2_clk";
-                               drive-strength = <10>;
-                               bias-disable;
-                       };
-
-                       cmd-data {
-                               pins = "sdc2_cmd", "sdc2_data";
-                               drive-strength = <6>;
-                               bias-pull-up;
-                       };
-               };
-
-               ts_int_pin: touch-int {
-                       pin {
-                               pins = "gpio61";
-                               function = "gpio";
-
-                               drive-strength = <2>;
-                               bias-disable;
-                               input-enable;
-                       };
-               };
-       };
-
-       dma-controller@f9944000 {
-               qcom,controlled-remotely;
-       };
-};
-
-&spmi_bus {
-       pm8941@0 {
-               charger@1000 {
-                       qcom,fast-charge-safe-current = <1500000>;
-                       qcom,fast-charge-current-limit = <1500000>;
-                       qcom,dc-current-limit = <1800000>;
-                       qcom,fast-charge-safe-voltage = <4400000>;
-                       qcom,fast-charge-high-threshold-voltage = <4350000>;
-                       qcom,fast-charge-low-threshold-voltage = <3400000>;
-                       qcom,auto-recharge-threshold-voltage = <4200000>;
-                       qcom,minimum-input-voltage = <4300000>;
-               };
-
-               gpios@c000 {
-                       gpio_keys_pin_a: gpio-keys-active {
-                               pins = "gpio2", "gpio3", "gpio4", "gpio5";
-                               function = "normal";
-
-                               bias-pull-up;
-                               power-source = <PM8941_GPIO_S3>;
-                       };
-               };
-
-               coincell@2800 {
-                       status = "okay";
-                       qcom,rset-ohms = <2100>;
-                       qcom,vset-millivolts = <3000>;
-               };
-       };
-
-       pm8941@1 {
-               wled@d800 {
-                       status = "okay";
-
-                       qcom,cs-out;
-                       qcom,current-limit = <20>;
-                       qcom,current-boost-limit = <805>;
-                       qcom,switching-freq = <1600>;
-                       qcom,ovp = <29>;
-                       qcom,num-strings = <2>;
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-amami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-amami.dts
new file mode 100644 (file)
index 0000000..68d5626
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974-sony-xperia-rhine.dtsi"
+
+/ {
+       model = "Sony Xperia Z1 Compact";
+       compatible = "sony,xperia-amami", "qcom,msm8974";
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <1300000>;
+       qcom,fast-charge-current-limit = <1300000>;
+       qcom,dc-current-limit = <1300000>;
+};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-honami.dts b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine-honami.dts
new file mode 100644 (file)
index 0000000..ea6a941
--- /dev/null
@@ -0,0 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974-sony-xperia-rhine.dtsi"
+
+/ {
+       model = "Sony Xperia Z1";
+       compatible = "sony,xperia-honami", "qcom,msm8974";
+};
diff --git a/arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi b/arch/arm/boot/dts/qcom-msm8974-sony-xperia-rhine.dtsi
new file mode 100644 (file)
index 0000000..1d21de4
--- /dev/null
@@ -0,0 +1,457 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974.dtsi"
+#include "qcom-pm8841.dtsi"
+#include "qcom-pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       aliases {
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA>;
+               };
+
+               camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+               };
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               ramoops@3e8e0000 {
+                       compatible = "ramoops";
+                       reg = <0x3e8e0000 0x200000>;
+
+                       console-size = <0x100000>;
+                       record-size = <0x10000>;
+                       ftrace-size = <0x10000>;
+                       pmsg-size = <0x80000>;
+               };
+       };
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+       clock-frequency = <355000>;
+
+       synaptics@2c {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x2c>;
+
+               interrupts-extended = <&tlmm 61 IRQ_TYPE_EDGE_FALLING>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_pin>;
+
+               syna,startup-delay-ms = <10>;
+
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f11@11 {
+                       reg = <0x11>;
+                       touchscreen-inverted-x;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp1_i2c6 {
+       status = "okay";
+       clock-frequency = <355000>;
+
+       nfc@28 {
+               compatible = "nxp,pn544-i2c";
+               reg = <0x28>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <59 IRQ_TYPE_EDGE_RISING>;
+
+               enable-gpios = <&pm8941_gpios 23 GPIO_ACTIVE_HIGH>;
+               firmware-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&blsp2_dma {
+       qcom,controlled-remotely;
+};
+
+&blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <355000>;
+
+       /* sii8334 MHL HDMI bridge */
+};
+
+&otg {
+       status = "okay";
+
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       ulpi {
+               phy@a {
+                       status = "okay";
+
+                       v1p8-supply = <&pm8941_l6>;
+                       v3p3-supply = <&pm8941_l24>;
+
+                       extcon = <&smbb>;
+                       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+               };
+       };
+};
+
+&pm8941_coincell {
+       status = "okay";
+       qcom,rset-ohms = <2100>;
+       qcom,vset-millivolts = <3000>;
+};
+
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active {
+               pins = "gpio2", "gpio3", "gpio4", "gpio5";
+               function = "normal";
+
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+};
+
+&pm8941_wled {
+       status = "okay";
+
+       qcom,cs-out;
+       qcom,current-limit = <20>;
+       qcom,current-boost-limit = <805>;
+       qcom,switching-freq = <1600>;
+       qcom,ovp = <29>;
+       qcom,num-strings = <2>;
+};
+
+&rpm_requests {
+       pm8841-regulators {
+               compatible = "qcom,rpm-pm8841-regulators";
+
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s4: s4 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+       };
+
+       pm8941-regulators {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s4: s4 {
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_lvs3: lvs3 {};
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <1500000>;
+       qcom,dc-current-limit = <1800000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,fast-charge-low-threshold-voltage = <3400000>;
+       qcom,auto-recharge-threshold-voltage = <4200000>;
+       qcom,minimum-input-voltage = <4300000>;
+};
+
+&tlmm {
+       ts_int_pin: touch-int {
+               pins = "gpio61";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               input-enable;
+       };
+
+       sdc1_on: sdc1-on {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc2_on: sdc-on {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+
+               cd {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+};
index 412d947..814ad0b 100644 (file)
 / {
        #address-cells = <1>;
        #size-cells = <1>;
-       model = "Qualcomm MSM8974";
-       compatible = "qcom,msm8974";
        interrupt-parent = <&intc>;
 
-       reserved-memory {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               mpss_region: mpss@8000000 {
-                       reg = <0x08000000 0x5100000>;
-                       no-map;
-               };
-
-               mba_region: mba@d100000 {
-                       reg = <0x0d100000 0x100000>;
-                       no-map;
-               };
-
-               wcnss_region: wcnss@d200000 {
-                       reg = <0x0d200000 0xa00000>;
-                       no-map;
-               };
-
-               adsp_region: adsp@dc00000 {
-                       reg = <0x0dc00000 0x1900000>;
-                       no-map;
-               };
-
-               venus@f500000 {
-                       reg = <0x0f500000 0x500000>;
-                       no-map;
-               };
-
-               smem_region: smem@fa00000 {
-                       reg = <0xfa00000 0x200000>;
-                       no-map;
-               };
-
-               tz@fc00000 {
-                       reg = <0x0fc00000 0x160000>;
-                       no-map;
-               };
-
-               rfsa@fd60000 {
-                       reg = <0x0fd60000 0x20000>;
-                       no-map;
+       clocks {
+               xo_board: xo_board {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <19200000>;
                };
 
-               rmtfs@fd80000 {
-                       compatible = "qcom,rmtfs-mem";
-                       reg = <0x0fd80000 0x180000>;
-                       no-map;
-
-                       qcom,client-id = <1>;
+               sleep_clk: sleep_clk {
+                       compatible = "fixed-clock";
+                       #clock-cells = <0>;
+                       clock-frequency = <32768>;
                };
        };
 
                };
        };
 
+       firmware {
+               scm {
+                       compatible = "qcom,scm";
+                       clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
+                       clock-names = "core", "bus", "iface";
+               };
+       };
+
        memory {
                device_type = "memory";
                reg = <0x0 0x0>;
        };
 
-       thermal-zones {
-               cpu0-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+       pmu {
+               compatible = "qcom,krait-pmu";
+               interrupts = <GIC_PPI 7 0xf04>;
+       };
 
-                       thermal-sensors = <&tsens 5>;
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
 
-                       trips {
-                               cpu_alert0: trip0 {
-                                       temperature = <75000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               cpu_crit0: trip1 {
-                                       temperature = <110000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
-                       };
+               mpss_region: mpss@8000000 {
+                       reg = <0x08000000 0x5100000>;
+                       no-map;
                };
 
-               cpu1-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+               mba_region: mba@d100000 {
+                       reg = <0x0d100000 0x100000>;
+                       no-map;
+               };
 
-                       thermal-sensors = <&tsens 6>;
+               wcnss_region: wcnss@d200000 {
+                       reg = <0x0d200000 0xa00000>;
+                       no-map;
+               };
 
-                       trips {
-                               cpu_alert1: trip0 {
-                                       temperature = <75000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               cpu_crit1: trip1 {
-                                       temperature = <110000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
-                       };
+               adsp_region: adsp@dc00000 {
+                       reg = <0x0dc00000 0x1900000>;
+                       no-map;
                };
 
-               cpu2-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+               venus_region: memory@f500000 {
+                       reg = <0x0f500000 0x500000>;
+                       no-map;
+               };
 
-                       thermal-sensors = <&tsens 7>;
+               smem_region: smem@fa00000 {
+                       reg = <0xfa00000 0x200000>;
+                       no-map;
+               };
 
-                       trips {
-                               cpu_alert2: trip0 {
-                                       temperature = <75000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               cpu_crit2: trip1 {
-                                       temperature = <110000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
-                       };
+               tz_region: memory@fc00000 {
+                       reg = <0x0fc00000 0x160000>;
+                       no-map;
                };
 
-               cpu3-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+               rfsa_mem: memory@fd60000 {
+                       reg = <0x0fd60000 0x20000>;
+                       no-map;
+               };
 
-                       thermal-sensors = <&tsens 8>;
+               rmtfs@fd80000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0fd80000 0x180000>;
+                       no-map;
 
-                       trips {
-                               cpu_alert3: trip0 {
-                                       temperature = <75000>;
-                                       hysteresis = <2000>;
-                                       type = "passive";
-                               };
-                               cpu_crit3: trip1 {
-                                       temperature = <110000>;
-                                       hysteresis = <2000>;
-                                       type = "critical";
-                               };
-                       };
+                       qcom,client-id = <1>;
                };
+       };
 
-               q6-dsp-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
-
-                       thermal-sensors = <&tsens 1>;
+       smem {
+               compatible = "qcom,smem";
 
-                       trips {
-                               q6_dsp_alert0: trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <2000>;
-                                       type = "hot";
-                               };
-                       };
-               };
+               memory-region = <&smem_region>;
+               qcom,rpm-msg-ram = <&rpm_msg_ram>;
 
-               modemtx-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+               hwlocks = <&tcsr_mutex 3>;
+       };
 
-                       thermal-sensors = <&tsens 2>;
+       smp2p-adsp {
+               compatible = "qcom,smp2p";
+               qcom,smem = <443>, <429>;
 
-                       trips {
-                               modemtx_alert0: trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <2000>;
-                                       type = "hot";
-                               };
-                       };
-               };
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
 
-               video-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+               qcom,ipc = <&apcs 8 10>;
 
-                       thermal-sensors = <&tsens 3>;
+               qcom,local-pid = <0>;
+               qcom,remote-pid = <2>;
 
-                       trips {
-                               video_alert0: trip-point0 {
-                                       temperature = <95000>;
-                                       hysteresis = <2000>;
-                                       type = "hot";
-                               };
-                       };
+               adsp_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
                };
 
-               wlan-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
-
-                       thermal-sensors = <&tsens 4>;
+               adsp_smp2p_in: slave-kernel {
+                       qcom,entry-name = "slave-kernel";
 
-                       trips {
-                               wlan_alert0: trip-point0 {
-                                       temperature = <105000>;
-                                       hysteresis = <2000>;
-                                       type = "hot";
-                               };
-                       };
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
                };
+       };
 
-               gpu-top-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
+       smp2p-modem {
+               compatible = "qcom,smp2p";
+               qcom,smem = <435>, <428>;
 
-                       thermal-sensors = <&tsens 9>;
+               interrupt-parent = <&intc>;
+               interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
 
-                       trips {
-                               gpu1_alert0: trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <2000>;
-                                       type = "hot";
-                               };
-                       };
-               };
-
-               gpu-bottom-thermal {
-                       polling-delay-passive = <250>;
-                       polling-delay = <1000>;
-
-                       thermal-sensors = <&tsens 10>;
-
-                       trips {
-                               gpu2_alert0: trip-point0 {
-                                       temperature = <90000>;
-                                       hysteresis = <2000>;
-                                       type = "hot";
-                               };
-                       };
-               };
-       };
-
-       cpu-pmu {
-               compatible = "qcom,krait-pmu";
-               interrupts = <GIC_PPI 7 0xf04>;
-       };
-
-       clocks {
-               xo_board: xo_board {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <19200000>;
-               };
-
-               sleep_clk: sleep_clk {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <32768>;
-               };
-       };
-
-       timer {
-               compatible = "arm,armv7-timer";
-               interrupts = <GIC_PPI 2 0xf08>,
-                            <GIC_PPI 3 0xf08>,
-                            <GIC_PPI 4 0xf08>,
-                            <GIC_PPI 1 0xf08>;
-               clock-frequency = <19200000>;
-       };
-
-       adsp-pil {
-               compatible = "qcom,msm8974-adsp-pil";
-
-               interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
-                                     <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
-                                     <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
-                                     <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
-                                     <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
-               interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
-
-               cx-supply = <&pm8841_s2>;
-
-               clocks = <&xo_board>;
-               clock-names = "xo";
-
-               memory-region = <&adsp_region>;
-
-               qcom,smem-states = <&adsp_smp2p_out 0>;
-               qcom,smem-state-names = "stop";
-
-               smd-edge {
-                       interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
-
-                       qcom,ipc = <&apcs 8 8>;
-                       qcom,smd-edge = <1>;
-
-                       label = "lpass";
-               };
-       };
-
-       smem {
-               compatible = "qcom,smem";
-
-               memory-region = <&smem_region>;
-               qcom,rpm-msg-ram = <&rpm_msg_ram>;
-
-               hwlocks = <&tcsr_mutex 3>;
-       };
-
-       smp2p-adsp {
-               compatible = "qcom,smp2p";
-               qcom,smem = <443>, <429>;
-
-               interrupt-parent = <&intc>;
-               interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
-
-               qcom,ipc = <&apcs 8 10>;
-
-               qcom,local-pid = <0>;
-               qcom,remote-pid = <2>;
-
-               adsp_smp2p_out: master-kernel {
-                       qcom,entry-name = "master-kernel";
-                       #qcom,smem-state-cells = <1>;
-               };
-
-               adsp_smp2p_in: slave-kernel {
-                       qcom,entry-name = "slave-kernel";
-
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-               };
-       };
-
-       smp2p-modem {
-               compatible = "qcom,smp2p";
-               qcom,smem = <435>, <428>;
-
-               interrupt-parent = <&intc>;
-               interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
-
-               qcom,ipc = <&apcs 8 14>;
+               qcom,ipc = <&apcs 8 14>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
                };
        };
 
-       firmware {
-               scm {
-                       compatible = "qcom,scm";
-                       clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
-                       clock-names = "core", "bus", "iface";
+       smd {
+               compatible = "qcom,smd";
+
+               rpm {
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&apcs 8 0>;
+                       qcom,smd-edge = <15>;
+
+                       rpm_requests: rpm_requests {
+                               compatible = "qcom,rpm-msm8974";
+                               qcom,smd-channels = "rpm_requests";
+
+                               rpmcc: clock-controller {
+                                       compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
+                                       #clock-cells = <1>;
+                               };
+                       };
                };
        };
 
                        reg = <0xf9011000 0x1000>;
                };
 
-               qfprom: qfprom@fc4bc000 {
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       compatible = "qcom,qfprom";
-                       reg = <0xfc4bc000 0x1000>;
-                       tsens_calib: calib@d0 {
-                               reg = <0xd0 0x18>;
-                       };
-                       tsens_backup: backup@440 {
-                               reg = <0x440 0x10>;
-                       };
-               };
-
-               tsens: thermal-sensor@fc4a9000 {
-                       compatible = "qcom,msm8974-tsens";
-                       reg = <0xfc4a9000 0x1000>, /* TM */
-                             <0xfc4a8000 0x1000>; /* SROT */
-                       nvmem-cells = <&tsens_calib>, <&tsens_backup>;
-                       nvmem-cell-names = "calib", "calib_backup";
-                       #qcom,sensors = <11>;
-                       interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "uplow";
-                       #thermal-sensor-cells = <1>;
-               };
-
                timer@f9020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
                };
 
-               restart@fc4ab000 {
-                       compatible = "qcom,pshold";
-                       reg = <0xfc4ab000 0x4>;
-               };
-
-               gcc: clock-controller@fc400000 {
-                       compatible = "qcom,gcc-msm8974";
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-                       #power-domain-cells = <1>;
-                       reg = <0xfc400000 0x4000>;
-               };
-
-               tcsr: syscon@fd4a0000 {
-                       compatible = "syscon";
-                       reg = <0xfd4a0000 0x10000>;
-               };
-
-               tcsr_mutex_block: syscon@fd484000 {
-                       compatible = "syscon";
-                       reg = <0xfd484000 0x2000>;
-               };
-
-               mmcc: clock-controller@fd8c0000 {
-                       compatible = "qcom,mmcc-msm8974";
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-                       #power-domain-cells = <1>;
-                       reg = <0xfd8c0000 0x6000>;
-               };
-
-               tcsr_mutex: tcsr-mutex {
-                       compatible = "qcom,tcsr-mutex";
-                       syscon = <&tcsr_mutex_block 0 0x80>;
-
-                       #hwlock-cells = <1>;
-               };
-
-               rpm_msg_ram: memory@fc428000 {
-                       compatible = "qcom,rpm-msg-ram";
-                       reg = <0xfc428000 0x4000>;
-               };
-
-               blsp1_uart1: serial@f991d000 {
-                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
-                       reg = <0xf991d000 0x1000>;
-                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       status = "disabled";
-               };
-
-               blsp1_uart2: serial@f991e000 {
-                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
-                       reg = <0xf991e000 0x1000>;
-                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       status = "disabled";
-               };
-
-               blsp2_uart7: serial@f995d000 {
-                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
-                       reg = <0xf995d000 0x1000>;
-                       interrupts = <GIC_SPI 113 IRQ_TYPE_NONE>;
-                       clocks = <&gcc GCC_BLSP2_UART1_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       status = "disabled";
-               };
-
-               blsp2_uart8: serial@f995e000 {
-                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
-                       reg = <0xf995e000 0x1000>;
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       status = "disabled";
-               };
-
-               blsp2_uart10: serial@f9960000 {
-                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
-                       reg = <0xf9960000 0x1000>;
-                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_UART4_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       status = "disabled";
-               };
-
-               sdhci@f9824900 {
+               sdhc_1: sdhci@f9824900 {
                        compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
                        reg-names = "hc_mem", "core_mem";
                                 <&gcc GCC_SDCC1_AHB_CLK>,
                                 <&xo_board>;
                        clock-names = "core", "iface", "xo";
+                       bus-width = <8>;
+                       non-removable;
+
                        status = "disabled";
                };
 
-               sdhci@f9864900 {
+               sdhc_3: sdhci@f9864900 {
                        compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
                        reg-names = "hc_mem", "core_mem";
                                 <&gcc GCC_SDCC3_AHB_CLK>,
                                 <&xo_board>;
                        clock-names = "core", "iface", "xo";
+                       bus-width = <4>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
                        status = "disabled";
                };
 
-               sdhci@f98a4900 {
+               sdhc_2: sdhci@f98a4900 {
                        compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
                        reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
                        reg-names = "hc_mem", "core_mem";
                                 <&gcc GCC_SDCC2_AHB_CLK>,
                                 <&xo_board>;
                        clock-names = "core", "iface", "xo";
+                       bus-width = <4>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
                        status = "disabled";
                };
 
-               otg: usb@f9a55000 {
-                       compatible = "qcom,ci-hdrc";
-                       reg = <0xf9a55000 0x200>,
-                             <0xf9a55200 0x200>;
-                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_USB_HS_AHB_CLK>,
-                                <&gcc GCC_USB_HS_SYSTEM_CLK>;
-                       clock-names = "iface", "core";
-                       assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
-                       assigned-clock-rates = <75000000>;
-                       resets = <&gcc GCC_USB_HS_BCR>;
-                       reset-names = "core";
-                       phy_type = "ulpi";
-                       dr_mode = "otg";
-                       ahb-burst-config = <0>;
-                       phy-names = "usb-phy";
+               blsp1_uart1: serial@f991d000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf991d000 0x1000>;
+                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        status = "disabled";
-                       #reset-cells = <1>;
+               };
+
+               blsp1_uart2: serial@f991e000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf991e000 0x1000>;
+                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp1_i2c1: i2c@f9923000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9923000 0x1000>;
+                       interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c1_default>;
+                       pinctrl-1 = <&blsp1_i2c1_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_i2c2: i2c@f9924000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9924000 0x1000>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c2_default>;
+                       pinctrl-1 = <&blsp1_i2c2_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_i2c3: i2c@f9925000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9925000 0x1000>;
+                       interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c3_default>;
+                       pinctrl-1 = <&blsp1_i2c3_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp1_i2c6: i2c@f9928000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9928000 0x1000>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp1_i2c6_default>;
+                       pinctrl-1 = <&blsp1_i2c6_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_dma: dma-controller@f9944000 {
+                       compatible = "qcom,bam-v1.4.0";
+                       reg = <0xf9944000 0x19000>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "bam_clk";
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+               };
+
+               blsp2_uart1: serial@f995d000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf995d000 0x1000>;
+                       interrupts = <GIC_SPI 113 IRQ_TYPE_NONE>;
+                       clocks = <&gcc GCC_BLSP2_UART1_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp2_uart2: serial@f995e000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf995e000 0x1000>;
+                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp2_uart4: serial@f9960000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0xf9960000 0x1000>;
+                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_UART4_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               blsp2_i2c2: i2c@f9964000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9964000 0x1000>;
+                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp2_i2c2_default>;
+                       pinctrl-1 = <&blsp2_i2c2_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_i2c5: i2c@f9967000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9967000 0x1000>;
+                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
+                       dma-names = "tx", "rx";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&blsp2_i2c5_default>;
+                       pinctrl-1 = <&blsp2_i2c5_sleep>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               blsp2_i2c6: i2c@f9968000 {
+                       status = "disabled";
+                       compatible = "qcom,i2c-qup-v2.1.1";
+                       reg = <0xf9968000 0x1000>;
+                       interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               otg: usb@f9a55000 {
+                       compatible = "qcom,ci-hdrc";
+                       reg = <0xf9a55000 0x200>,
+                             <0xf9a55200 0x200>;
+                       interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_USB_HS_AHB_CLK>,
+                                <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       clock-names = "iface", "core";
+                       assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
+                       assigned-clock-rates = <75000000>;
+                       resets = <&gcc GCC_USB_HS_BCR>;
+                       reset-names = "core";
+                       phy_type = "ulpi";
+                       dr_mode = "otg";
+                       ahb-burst-config = <0>;
+                       phy-names = "usb-phy";
+                       status = "disabled";
+                       #reset-cells = <1>;
 
                        ulpi {
                                usb_hs1_phy: phy@a {
                        clock-names = "core";
                };
 
-               remoteproc@fc880000 {
-                       compatible = "qcom,msm8974-mss-pil";
-                       reg = <0xfc880000 0x100>, <0xfc820000 0x020>;
-                       reg-names = "qdsp6", "rmb";
-
-                       interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
-                                             <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
-                                             <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
-                                             <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
-                                             <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
-
-                       clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
-                                <&gcc GCC_MSS_CFG_AHB_CLK>,
-                                <&gcc GCC_BOOT_ROM_AHB_CLK>,
-                                <&xo_board>;
-                       clock-names = "iface", "bus", "mem", "xo";
-
-                       resets = <&gcc GCC_MSS_RESTART>;
-                       reset-names = "mss_restart";
-
-                       cx-supply = <&pm8841_s2>;
-                       mss-supply = <&pm8841_s3>;
-                       mx-supply = <&pm8841_s1>;
-                       pll-supply = <&pm8941_l12>;
-
-                       qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
-
-                       qcom,smem-states = <&modem_smp2p_out 0>;
-                       qcom,smem-state-names = "stop";
-
-                       mba {
-                               memory-region = <&mba_region>;
-                       };
-
-                       mpss {
-                               memory-region = <&mpss_region>;
-                       };
-
-                       smd-edge {
-                               interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
-
-                               qcom,ipc = <&apcs 8 12>;
-                               qcom,smd-edge = <0>;
-
-                               label = "modem";
-                       };
-               };
-
                pronto: remoteproc@fb21b000 {
                        compatible = "qcom,pronto-v2-pil", "qcom,pronto";
                        reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
                                              <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
 
-                       vddpx-supply = <&pm8941_s3>;
-
                        qcom,smem-states = <&wcnss_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
 
                                clocks = <&rpmcc RPM_SMD_CXO_A2>;
                                clock-names = "xo";
-
-                               vddxo-supply = <&pm8941_l6>;
-                               vddrfa-supply = <&pm8941_l11>;
-                               vddpa-supply = <&pm8941_l19>;
-                               vdddig-supply = <&pm8941_s3>;
                        };
 
                        smd-edge {
                                                interrupt-names = "tx", "rx";
 
                                                qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
-                                               qcom,smem-state-names = "tx-enable", "tx-rings-empty";
+                                               qcom,smem-state-names = "tx-enable",
+                                                                       "tx-rings-empty";
                                        };
                                };
                        };
                };
 
-               msmgpio: pinctrl@fd510000 {
-                       compatible = "qcom,msm8974-pinctrl";
-                       reg = <0xfd510000 0x4000>;
-                       gpio-controller;
-                       gpio-ranges = <&msmgpio 0 0 146>;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
-               };
+               etf@fc307000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0xfc307000 0x1000>;
 
-               i2c@f9923000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9923000 0x1000>;
-                       interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
 
-               i2c@f9924000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9924000 0x1000>;
-                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
+                       out-ports {
+                               port {
+                                       etf_out: endpoint {
+                                               remote-endpoint = <&replicator_in>;
+                                       };
+                               };
+                       };
 
-               blsp_i2c3: i2c@f9925000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9925000 0x1000>;
-                       interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       in-ports {
+                               port {
+                                       etf_in: endpoint {
+                                               remote-endpoint = <&merger_out>;
+                                       };
+                               };
+                       };
                };
 
-               blsp_i2c6: i2c@f9928000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9928000 0x1000>;
-                       interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
+               tpiu@fc318000 {
+                       compatible = "arm,coresight-tpiu", "arm,primecell";
+                       reg = <0xfc318000 0x1000>;
 
-               blsp_i2c8: i2c@f9964000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9964000 0x1000>;
-                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               blsp_i2c11: i2c@f9967000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9967000 0x1000>;
-                       interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
-                       dma-names = "tx", "rx";
-               };
-
-               blsp_i2c12: i2c@f9968000 {
-                       status = "disabled";
-                       compatible = "qcom,i2c-qup-v2.1.1";
-                       reg = <0xf9968000 0x1000>;
-                       interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "core", "iface";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               spmi_bus: spmi@fc4cf000 {
-                       compatible = "qcom,spmi-pmic-arb";
-                       reg-names = "core", "intr", "cnfg";
-                       reg = <0xfc4cf000 0x1000>,
-                             <0xfc4cb000 0x1000>,
-                             <0xfc4ca000 0x1000>;
-                       interrupt-names = "periph_irq";
-                       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
-                       qcom,ee = <0>;
-                       qcom,channel = <0>;
-                       #address-cells = <2>;
-                       #size-cells = <0>;
-                       interrupt-controller;
-                       #interrupt-cells = <4>;
-               };
-
-               blsp2_dma: dma-controller@f9944000 {
-                       compatible = "qcom,bam-v1.4.0";
-                       reg = <0xf9944000 0x19000>;
-                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>;
-                       clock-names = "bam_clk";
-                       #dma-cells = <1>;
-                       qcom,ee = <0>;
-               };
-
-               etr@fc322000 {
-                       compatible = "arm,coresight-tmc", "arm,primecell";
-                       reg = <0xfc322000 0x1000>;
-
-                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
-                       clock-names = "apb_pclk", "atclk";
-
-                       in-ports {
-                               port {
-                                       etr_in: endpoint {
-                                               remote-endpoint = <&replicator_out0>;
-                                       };
-                               };
-                       };
-               };
-
-               tpiu@fc318000 {
-                       compatible = "arm,coresight-tpiu", "arm,primecell";
-                       reg = <0xfc318000 0x1000>;
-
-                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
-                       clock-names = "apb_pclk", "atclk";
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
 
                        in-ports {
                                port {
                        };
                };
 
-               replicator@fc31c000 {
-                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
-                       reg = <0xfc31c000 0x1000>;
+               funnel@fc31a000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0xfc31a000 0x1000>;
 
                        clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
 
-                       out-ports {
+                       in-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               port@0 {
-                                       reg = <0>;
-                                       replicator_out0: endpoint {
-                                               remote-endpoint = <&etr_in>;
-                                       };
-                               };
-                               port@1 {
-                                       reg = <1>;
-                                       replicator_out1: endpoint {
-                                               remote-endpoint = <&tpiu_in>;
-                                       };
-                               };
-                       };
-
-                       in-ports {
-                               port {
-                                       replicator_in: endpoint {
-                                               remote-endpoint = <&etf_out>;
+                               /*
+                                * Not described input ports:
+                                * 0 - not-connected
+                                * 1 - connected trought funnel to Multimedia CPU
+                                * 2 - connected to Wireless CPU
+                                * 3 - not-connected
+                                * 4 - not-connected
+                                * 6 - not-connected
+                                * 7 - connected to STM
+                                */
+                               port@5 {
+                                       reg = <5>;
+                                       funnel1_in5: endpoint {
+                                               remote-endpoint = <&kpss_out>;
                                        };
                                };
                        };
-               };
-
-               etf@fc307000 {
-                       compatible = "arm,coresight-tmc", "arm,primecell";
-                       reg = <0xfc307000 0x1000>;
-
-                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
-                       clock-names = "apb_pclk", "atclk";
 
                        out-ports {
                                port {
-                                       etf_out: endpoint {
-                                               remote-endpoint = <&replicator_in>;
-                                       };
-                               };
-                       };
-
-                       in-ports {
-                               port {
-                                       etf_in: endpoint {
-                                               remote-endpoint = <&merger_out>;
+                                       funnel1_out: endpoint {
+                                               remote-endpoint = <&merger_in1>;
                                        };
                                };
                        };
                        };
                };
 
-               funnel@fc31a000 {
-                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
-                       reg = <0xfc31a000 0x1000>;
+               replicator@fc31c000 {
+                       compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
+                       reg = <0xfc31c000 0x1000>;
 
                        clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
 
-                       in-ports {
+                       out-ports {
                                #address-cells = <1>;
                                #size-cells = <0>;
 
-                               /*
-                                * Not described input ports:
-                                * 0 - not-connected
-                                * 1 - connected trought funnel to Multimedia CPU
-                                * 2 - connected to Wireless CPU
-                                * 3 - not-connected
-                                * 4 - not-connected
-                                * 6 - not-connected
-                                * 7 - connected to STM
-                                */
-                               port@5 {
-                                       reg = <5>;
-                                       funnel1_in5: endpoint {
-                                               remote-endpoint = <&kpss_out>;
+                               port@0 {
+                                       reg = <0>;
+                                       replicator_out0: endpoint {
+                                               remote-endpoint = <&etr_in>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       replicator_out1: endpoint {
+                                               remote-endpoint = <&tpiu_in>;
                                        };
                                };
                        };
 
-                       out-ports {
+                       in-ports {
                                port {
-                                       funnel1_out: endpoint {
-                                               remote-endpoint = <&merger_in1>;
+                                       replicator_in: endpoint {
+                                               remote-endpoint = <&etf_out>;
                                        };
                                };
                        };
                };
 
-               funnel@fc345000 { /* KPSS funnel only 4 inputs are used */
-                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
-                       reg = <0xfc345000 0x1000>;
+               etr@fc322000 {
+                       compatible = "arm,coresight-tmc", "arm,primecell";
+                       reg = <0xfc322000 0x1000>;
 
                        clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
                        clock-names = "apb_pclk", "atclk";
 
                        in-ports {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               port@0 {
-                                       reg = <0>;
-                                       kpss_in0: endpoint {
-                                               remote-endpoint = <&etm0_out>;
-                                       };
-                               };
-                               port@1 {
-                                       reg = <1>;
-                                       kpss_in1: endpoint {
-                                               remote-endpoint = <&etm1_out>;
-                                       };
-                               };
-                               port@2 {
-                                       reg = <2>;
-                                       kpss_in2: endpoint {
-                                               remote-endpoint = <&etm2_out>;
-                                       };
-                               };
-                               port@3 {
-                                       reg = <3>;
-                                       kpss_in3: endpoint {
-                                               remote-endpoint = <&etm3_out>;
-                                       };
-                               };
-                       };
-
-                       out-ports {
                                port {
-                                       kpss_out: endpoint {
-                                               remote-endpoint = <&funnel1_in5>;
+                                       etr_in: endpoint {
+                                               remote-endpoint = <&replicator_out0>;
                                        };
                                };
                        };
                        };
                };
 
-               ocmem@fdd00000 {
-                       compatible = "qcom,msm8974-ocmem";
-                       reg = <0xfdd00000 0x2000>,
-                             <0xfec00000 0x180000>;
-                       reg-names = "ctrl",
-                                   "mem";
-                       clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
-                                <&mmcc OCMEMCX_OCMEMNOC_CLK>;
-                       clock-names = "core",
-                                     "iface";
+               /* KPSS funnel, only 4 inputs are used */
+               funnel@fc345000 {
+                       compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
+                       reg = <0xfc345000 0x1000>;
 
-                       #address-cells = <1>;
-                       #size-cells = <1>;
+                       clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
+                       clock-names = "apb_pclk", "atclk";
 
-                       gmu_sram: gmu-sram@0 {
-                               reg = <0x0 0x100000>;
+                       in-ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       kpss_in0: endpoint {
+                                               remote-endpoint = <&etm0_out>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       kpss_in1: endpoint {
+                                               remote-endpoint = <&etm1_out>;
+                                       };
+                               };
+                               port@2 {
+                                       reg = <2>;
+                                       kpss_in2: endpoint {
+                                               remote-endpoint = <&etm2_out>;
+                                       };
+                               };
+                               port@3 {
+                                       reg = <3>;
+                                       kpss_in3: endpoint {
+                                               remote-endpoint = <&etm3_out>;
+                                       };
+                               };
                        };
-               };
 
-               bimc: interconnect@fc380000 {
-                       reg = <0xfc380000 0x6a000>;
-                       compatible = "qcom,msm8974-bimc";
-                       #interconnect-cells = <1>;
-                       clock-names = "bus", "bus_a";
-                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
+                       out-ports {
+                               port {
+                                       kpss_out: endpoint {
+                                               remote-endpoint = <&funnel1_in5>;
+                                       };
+                               };
+                       };
+               };
+
+               gcc: clock-controller@fc400000 {
+                       compatible = "qcom,gcc-msm8974";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       reg = <0xfc400000 0x4000>;
+               };
+
+               rpm_msg_ram: memory@fc428000 {
+                       compatible = "qcom,rpm-msg-ram";
+                       reg = <0xfc428000 0x4000>;
+               };
+
+               bimc: interconnect@fc380000 {
+                       reg = <0xfc380000 0x6a000>;
+                       compatible = "qcom,msm8974-bimc";
+                       #interconnect-cells = <1>;
+                       clock-names = "bus", "bus_a";
+                       clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
                                 <&rpmcc RPM_SMD_BIMC_A_CLK>;
                };
 
                                 <&rpmcc RPM_SMD_CNOC_A_CLK>;
                };
 
-               gpu: adreno@fdb00000 {
-                       status = "disabled";
+               tsens: thermal-sensor@fc4a9000 {
+                       compatible = "qcom,msm8974-tsens";
+                       reg = <0xfc4a9000 0x1000>, /* TM */
+                             <0xfc4a8000 0x1000>; /* SROT */
+                       nvmem-cells = <&tsens_calib>, <&tsens_backup>;
+                       nvmem-cell-names = "calib", "calib_backup";
+                       #qcom,sensors = <11>;
+                       interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow";
+                       #thermal-sensor-cells = <1>;
+               };
 
-                       compatible = "qcom,adreno-330.1",
-                                    "qcom,adreno";
-                       reg = <0xfdb00000 0x10000>;
-                       reg-names = "kgsl_3d0_reg_memory";
-                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "kgsl_3d0_irq";
-                       clock-names = "core",
-                                     "iface",
-                                     "mem_iface";
-                       clocks = <&mmcc OXILI_GFX3D_CLK>,
-                                <&mmcc OXILICX_AHB_CLK>,
-                                <&mmcc OXILICX_AXI_CLK>;
-                       sram = <&gmu_sram>;
-                       power-domains = <&mmcc OXILICX_GDSC>;
-                       operating-points-v2 = <&gpu_opp_table>;
+               restart@fc4ab000 {
+                       compatible = "qcom,pshold";
+                       reg = <0xfc4ab000 0x4>;
+               };
 
-                       interconnects = <&mmssnoc MNOC_MAS_GRAPHICS_3D &bimc BIMC_SLV_EBI_CH0>,
-                                       <&ocmemnoc OCMEM_VNOC_MAS_GFX3D &ocmemnoc OCMEM_SLV_OCMEM>;
-                       interconnect-names = "gfx-mem",
-                                            "ocmem";
+               qfprom: qfprom@fc4bc000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "qcom,qfprom";
+                       reg = <0xfc4bc000 0x1000>;
+                       tsens_calib: calib@d0 {
+                               reg = <0xd0 0x18>;
+                       };
+                       tsens_backup: backup@440 {
+                               reg = <0x440 0x10>;
+                       };
+               };
 
-                       // iommus = <&gpu_iommu 0>;
+               spmi_bus: spmi@fc4cf000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg-names = "core", "intr", "cnfg";
+                       reg = <0xfc4cf000 0x1000>,
+                             <0xfc4cb000 0x1000>,
+                             <0xfc4ca000 0x1000>;
+                       interrupt-names = "periph_irq";
+                       interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+               };
 
-                       gpu_opp_table: opp_table {
-                               compatible = "operating-points-v2";
+               remoteproc_mss: remoteproc@fc880000 {
+                       compatible = "qcom,msm8974-mss-pil";
+                       reg = <0xfc880000 0x100>, <0xfc820000 0x020>;
+                       reg-names = "qdsp6", "rmb";
 
-                               opp-320000000 {
-                                       opp-hz = /bits/ 64 <320000000>;
+                       interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
+
+                       clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
+                                <&gcc GCC_MSS_CFG_AHB_CLK>,
+                                <&gcc GCC_BOOT_ROM_AHB_CLK>,
+                                <&xo_board>;
+                       clock-names = "iface", "bus", "mem", "xo";
+
+                       resets = <&gcc GCC_MSS_RESTART>;
+                       reset-names = "mss_restart";
+
+                       qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
+
+                       qcom,smem-states = <&modem_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       mba {
+                               memory-region = <&mba_region>;
+                       };
+
+                       mpss {
+                               memory-region = <&mpss_region>;
+                       };
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
+
+                               qcom,ipc = <&apcs 8 12>;
+                               qcom,smd-edge = <0>;
+
+                               label = "modem";
+                       };
+               };
+
+               tcsr_mutex_block: syscon@fd484000 {
+                       compatible = "syscon";
+                       reg = <0xfd484000 0x2000>;
+               };
+
+               tcsr: syscon@fd4a0000 {
+                       compatible = "syscon";
+                       reg = <0xfd4a0000 0x10000>;
+               };
+
+               tlmm: pinctrl@fd510000 {
+                       compatible = "qcom,msm8974-pinctrl";
+                       reg = <0xfd510000 0x4000>;
+                       gpio-controller;
+                       gpio-ranges = <&tlmm 0 0 146>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+
+                       sdc1_off: sdc1-off {
+                               clk {
+                                       pins = "sdc1_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
                                };
 
-                               opp-200000000 {
-                                       opp-hz = /bits/ 64 <200000000>;
+                               cmd {
+                                       pins = "sdc1_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
                                };
 
-                               opp-27000000 {
-                                       opp-hz = /bits/ 64 <27000000>;
+                               data {
+                                       pins = "sdc1_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+                       };
+
+                       sdc2_off: sdc2-off {
+                               clk {
+                                       pins = "sdc2_clk";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+
+                               cmd {
+                                       pins = "sdc2_cmd";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               data {
+                                       pins = "sdc2_data";
+                                       bias-pull-up;
+                                       drive-strength = <2>;
+                               };
+
+                               cd {
+                                       pins = "gpio54";
+                                       bias-disable;
+                                       drive-strength = <2>;
+                               };
+                       };
+
+                       blsp1_uart2_active: blsp1-uart2-active {
+                               rx {
+                                       pins = "gpio5";
+                                       function = "blsp_uart2";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               tx {
+                                       pins = "gpio4";
+                                       function = "blsp_uart2";
+                                       drive-strength = <4>;
+                                       bias-disable;
+                               };
+                       };
+
+                       blsp2_uart1_active: blsp2-uart1-active {
+                               tx-rts {
+                                       pins = "gpio41", "gpio44";
+                                       function = "blsp_uart7";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               rx-cts {
+                                       pins = "gpio42", "gpio43";
+                                       function = "blsp_uart7";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       blsp2_uart1_sleep: blsp2-uart1-sleep {
+                               pins = "gpio41", "gpio42", "gpio43", "gpio44";
+                               function = "gpio";
+                               drive-strength = <2>;
+                               bias-pull-down;
+                       };
+
+                       blsp2_uart4_active: blsp2-uart4-active {
+                               tx-rts {
+                                       pins = "gpio53", "gpio56";
+                                       function = "blsp_uart10";
+                                       drive-strength = <2>;
+                                       bias-disable;
+                               };
+
+                               rx-cts {
+                                       pins = "gpio54", "gpio55";
+                                       function = "blsp_uart10";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       blsp1_i2c1_default: blsp1-i2c1-default {
+                               pins = "gpio2", "gpio3";
+                               function = "blsp_i2c1";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp1_i2c1_sleep: blsp1-i2c1-sleep {
+                               pins = "gpio2", "gpio3";
+                               function = "blsp_i2c1";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       blsp1_i2c2_default: blsp1-i2c2-default {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp1_i2c2_sleep: blsp1-i2c2-sleep {
+                               pins = "gpio6", "gpio7";
+                               function = "blsp_i2c2";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       blsp1_i2c3_default: blsp1-i2c3-default {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_i2c3";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp1_i2c3_sleep: blsp1-i2c3-sleep {
+                               pins = "gpio10", "gpio11";
+                               function = "blsp_i2c3";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       /* BLSP1_I2C4 info is missing */
+
+                       /* BLSP1_I2C5 info is missing */
+
+                       blsp1_i2c6_default: blsp1-i2c6-default {
+                               pins = "gpio29", "gpio30";
+                               function = "blsp_i2c6";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp1_i2c6_sleep: blsp1-i2c6-sleep {
+                               pins = "gpio29", "gpio30";
+                               function = "blsp_i2c6";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+                       /* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
+
+                       /* BLSP2_I2C1 info is missing */
+
+                       blsp2_i2c2_default: blsp2-i2c2-default {
+                               pins = "gpio47", "gpio48";
+                               function = "blsp_i2c8";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp2_i2c2_sleep: blsp2-i2c2-sleep {
+                               pins = "gpio47", "gpio48";
+                               function = "blsp_i2c8";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       /* BLSP2_I2C3 info is missing */
+
+                       /* BLSP2_I2C4 info is missing */
+
+                       blsp2_i2c5_default: blsp2-i2c5-default {
+                               pins = "gpio83", "gpio84";
+                               function = "blsp_i2c11";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       blsp2_i2c5_sleep: blsp2-i2c5-sleep {
+                               pins = "gpio83", "gpio84";
+                               function = "blsp_i2c11";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       /* BLSP2_I2C6 info is missing - nobody uses it though? */
+
+                       spi8_default: spi8_default {
+                               mosi {
+                                       pins = "gpio45";
+                                       function = "blsp_spi8";
+                               };
+                               miso {
+                                       pins = "gpio46";
+                                       function = "blsp_spi8";
+                               };
+                               cs {
+                                       pins = "gpio47";
+                                       function = "blsp_spi8";
+                               };
+                               clk {
+                                       pins = "gpio48";
+                                       function = "blsp_spi8";
                                };
                        };
                };
 
-               mdss: mdss@fd900000 {
-                       status = "disabled";
+               mmcc: clock-controller@fd8c0000 {
+                       compatible = "qcom,mmcc-msm8974";
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+                       reg = <0xfd8c0000 0x6000>;
+               };
 
+               mdss: mdss@fd900000 {
                        compatible = "qcom,mdss";
-                       reg = <0xfd900000 0x100>,
-                             <0xfd924000 0x1000>;
-                       reg-names = "mdss_phys",
-                                   "vbif_phys";
+                       reg = <0xfd900000 0x100>, <0xfd924000 0x1000>;
+                       reg-names = "mdss_phys", "vbif_phys";
 
                        power-domains = <&mmcc MDSS_GDSC>;
 
                        clocks = <&mmcc MDSS_AHB_CLK>,
-                                <&mmcc MDSS_AXI_CLK>,
-                                <&mmcc MDSS_VSYNC_CLK>;
-                       clock-names = "iface",
-                                     "bus",
-                                     "vsync";
+                                <&mmcc MDSS_AXI_CLK>,
+                                <&mmcc MDSS_VSYNC_CLK>;
+                       clock-names = "iface", "bus", "vsync";
 
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
 
                        interrupt-controller;
                        #interrupt-cells = <1>;
 
+                       status = "disabled";
+
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
 
                        mdp: mdp@fd900000 {
-                               status = "disabled";
-
                                compatible = "qcom,mdp5";
                                reg = <0xfd900100 0x22000>;
                                reg-names = "mdp_phys";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <0 0>;
+                               interrupts = <0>;
 
                                clocks = <&mmcc MDSS_AHB_CLK>,
                                         <&mmcc MDSS_AXI_CLK>,
                                         <&mmcc MDSS_MDP_CLK>,
                                         <&mmcc MDSS_VSYNC_CLK>;
-                               clock-names = "iface",
-                                             "bus",
-                                             "core",
-                                             "vsync";
+                               clock-names = "iface", "bus", "core", "vsync";
 
                                interconnects = <&mmssnoc MNOC_MAS_MDP_PORT0 &bimc BIMC_SLV_EBI_CH0>;
                                interconnect-names = "mdp0-mem";
                        };
 
                        dsi0: dsi@fd922800 {
-                               status = "disabled";
-
                                compatible = "qcom,mdss-dsi-ctrl";
                                reg = <0xfd922800 0x1f8>;
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <4>;
 
-                               assigned-clocks = <&mmcc BYTE0_CLK_SRC>,
-                                                 <&mmcc PCLK0_CLK_SRC>;
-                               assigned-clock-parents = <&dsi_phy0 0>,
-                                                        <&dsi_phy0 1>;
+                               assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>;
+                               assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
 
                                clocks = <&mmcc MDSS_MDP_CLK>,
-                                        <&mmcc MDSS_AHB_CLK>,
-                                        <&mmcc MDSS_AXI_CLK>,
-                                        <&mmcc MDSS_BYTE0_CLK>,
-                                        <&mmcc MDSS_PCLK0_CLK>,
-                                        <&mmcc MDSS_ESC0_CLK>,
-                                        <&mmcc MMSS_MISC_AHB_CLK>;
+                                        <&mmcc MDSS_AHB_CLK>,
+                                        <&mmcc MDSS_AXI_CLK>,
+                                        <&mmcc MDSS_BYTE0_CLK>,
+                                        <&mmcc MDSS_PCLK0_CLK>,
+                                        <&mmcc MDSS_ESC0_CLK>,
+                                        <&mmcc MMSS_MISC_AHB_CLK>;
                                clock-names = "mdp_core",
-                                             "iface",
-                                             "bus",
-                                             "byte",
-                                             "pixel",
-                                             "core",
-                                             "core_mmss";
-
-                               phys = <&dsi_phy0>;
+                                             "iface",
+                                             "bus",
+                                             "byte",
+                                             "pixel",
+                                             "core",
+                                             "core_mmss";
+
+                               phys = <&dsi0_phy>;
                                phy-names = "dsi-phy";
 
+                               status = "disabled";
+
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
                                ports {
                                        #address-cells = <1>;
                                        #size-cells = <0>;
                                };
                        };
 
-                       dsi_phy0: dsi-phy@fd922a00 {
-                               status = "disabled";
-
+                       dsi0_phy: dsi-phy@fd922a00 {
                                compatible = "qcom,dsi-phy-28nm-hpm";
                                reg = <0xfd922a00 0xd4>,
                                      <0xfd922b00 0x280>,
                                      <0xfd922d80 0x30>;
                                reg-names = "dsi_pll",
-                                           "dsi_phy",
-                                           "dsi_phy_regulator";
+                                           "dsi_phy",
+                                           "dsi_phy_regulator";
 
                                #clock-cells = <1>;
                                #phy-cells = <0>;
-                               qcom,dsi-phy-index = <0>;
 
                                clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
                                clock-names = "iface", "ref";
+
+                               status = "disabled";
                        };
                };
 
-               imem@fe805000 {
+               gpu: adreno@fdb00000 {
+                       compatible = "qcom,adreno-330.1", "qcom,adreno";
+                       reg = <0xfdb00000 0x10000>;
+                       reg-names = "kgsl_3d0_reg_memory";
+
+                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "kgsl_3d0_irq";
+
+                       clocks = <&mmcc OXILI_GFX3D_CLK>,
+                                <&mmcc OXILICX_AHB_CLK>,
+                                <&mmcc OXILICX_AXI_CLK>;
+                       clock-names = "core", "iface", "mem_iface";
+
+                       sram = <&gmu_sram>;
+                       power-domains = <&mmcc OXILICX_GDSC>;
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       interconnects = <&mmssnoc MNOC_MAS_GRAPHICS_3D &bimc BIMC_SLV_EBI_CH0>,
+                                       <&ocmemnoc OCMEM_VNOC_MAS_GFX3D &ocmemnoc OCMEM_SLV_OCMEM>;
+                       interconnect-names = "gfx-mem", "ocmem";
+
+                       // iommus = <&gpu_iommu 0>;
+
                        status = "disabled";
+
+                       gpu_opp_table: opp_table {
+                               compatible = "operating-points-v2";
+
+                               opp-320000000 {
+                                       opp-hz = /bits/ 64 <320000000>;
+                               };
+
+                               opp-200000000 {
+                                       opp-hz = /bits/ 64 <200000000>;
+                               };
+
+                               opp-27000000 {
+                                       opp-hz = /bits/ 64 <27000000>;
+                               };
+                       };
+               };
+
+               ocmem@fdd00000 {
+                       compatible = "qcom,msm8974-ocmem";
+                       reg = <0xfdd00000 0x2000>,
+                             <0xfec00000 0x180000>;
+                       reg-names = "ctrl", "mem";
+                       clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
+                                <&mmcc OCMEMCX_OCMEMNOC_CLK>;
+                       clock-names = "core", "iface";
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       gmu_sram: gmu-sram@0 {
+                               reg = <0x0 0x100000>;
+                       };
+               };
+
+               remoteproc_adsp: remoteproc@fe200000 {
+                       compatible = "qcom,msm8974-adsp-pil";
+                       reg = <0xfe200000 0x100>;
+
+                       interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                              <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
+
+                       clocks = <&xo_board>;
+                       clock-names = "xo";
+
+                       memory-region = <&adsp_region>;
+
+                       qcom,smem-states = <&adsp_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
+
+                               qcom,ipc = <&apcs 8 8>;
+                               qcom,smd-edge = <1>;
+                               label = "lpass";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               imem: imem@fe805000 {
                        compatible = "syscon", "simple-mfd";
                        reg = <0xfe805000 0x1000>;
 
                };
        };
 
-       smd {
-               compatible = "qcom,smd";
+       tcsr_mutex: tcsr-mutex {
+               compatible = "qcom,tcsr-mutex";
+               syscon = <&tcsr_mutex_block 0 0x80>;
 
-               rpm {
-                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
-                       qcom,smd-edge = <15>;
+               #hwlock-cells = <1>;
+       };
 
-                       rpm_requests {
-                               compatible = "qcom,rpm-msm8974";
-                               qcom,smd-channels = "rpm_requests";
+       thermal-zones {
+               cpu0-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
 
-                               rpmcc: clock-controller {
-                                       compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
-                                       #clock-cells = <1>;
+                       thermal-sensors = <&tsens 5>;
+
+                       trips {
+                               cpu_alert0: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit0: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 6>;
+
+                       trips {
+                               cpu_alert1: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit1: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 7>;
+
+                       trips {
+                               cpu_alert2: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit2: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
                                };
+                       };
+               };
+
+               cpu3-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 8>;
+
+                       trips {
+                               cpu_alert3: trip0 {
+                                       temperature = <75000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+                               cpu_crit3: trip1 {
+                                       temperature = <110000>;
+                                       hysteresis = <2000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               q6-dsp-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 1>;
 
-                               pm8841-regulators {
-                                       compatible = "qcom,rpm-pm8841-regulators";
-
-                                       pm8841_s1: s1 {};
-                                       pm8841_s2: s2 {};
-                                       pm8841_s3: s3 {};
-                                       pm8841_s4: s4 {};
-                                       pm8841_s5: s5 {};
-                                       pm8841_s6: s6 {};
-                                       pm8841_s7: s7 {};
-                                       pm8841_s8: s8 {};
+                       trips {
+                               q6_dsp_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
                                };
+                       };
+               };
+
+               modemtx-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
 
-                               pm8941-regulators {
-                                       compatible = "qcom,rpm-pm8941-regulators";
-
-                                       pm8941_s1: s1 {};
-                                       pm8941_s2: s2 {};
-                                       pm8941_s3: s3 {};
-
-                                       pm8941_l1: l1 {};
-                                       pm8941_l2: l2 {};
-                                       pm8941_l3: l3 {};
-                                       pm8941_l4: l4 {};
-                                       pm8941_l5: l5 {};
-                                       pm8941_l6: l6 {};
-                                       pm8941_l7: l7 {};
-                                       pm8941_l8: l8 {};
-                                       pm8941_l9: l9 {};
-                                       pm8941_l10: l10 {};
-                                       pm8941_l11: l11 {};
-                                       pm8941_l12: l12 {};
-                                       pm8941_l13: l13 {};
-                                       pm8941_l14: l14 {};
-                                       pm8941_l15: l15 {};
-                                       pm8941_l16: l16 {};
-                                       pm8941_l17: l17 {};
-                                       pm8941_l18: l18 {};
-                                       pm8941_l19: l19 {};
-                                       pm8941_l20: l20 {};
-                                       pm8941_l21: l21 {};
-                                       pm8941_l22: l22 {};
-                                       pm8941_l23: l23 {};
-                                       pm8941_l24: l24 {};
-
-                                       pm8941_lvs1: lvs1 {};
-                                       pm8941_lvs2: lvs2 {};
-                                       pm8941_lvs3: lvs3 {};
+                       thermal-sensors = <&tsens 2>;
+
+                       trips {
+                               modemtx_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               video-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 3>;
+
+                       trips {
+                               video_alert0: trip-point0 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               wlan-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 4>;
+
+                       trips {
+                               wlan_alert0: trip-point0 {
+                                       temperature = <105000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               gpu-top-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 9>;
+
+                       trips {
+                               gpu1_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
+                               };
+                       };
+               };
+
+               gpu-bottom-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+
+                       thermal-sensors = <&tsens 10>;
+
+                       trips {
+                               gpu2_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "hot";
                                };
                        };
                };
        };
 
+       timer {
+               compatible = "arm,armv7-timer";
+               interrupts = <GIC_PPI 2 0xf08>,
+                            <GIC_PPI 3 0xf08>,
+                            <GIC_PPI 4 0xf08>,
+                            <GIC_PPI 1 0xf08>;
+               clock-frequency = <19200000>;
+       };
+
        vreg_boost: vreg-boost {
                compatible = "regulator-fixed";
 
                pinctrl-names = "default";
                pinctrl-0 = <&boost_bypass_n_pin>;
        };
+
        vreg_vph_pwr: vreg-vph-pwr {
                compatible = "regulator-fixed";
                regulator-name = "vph-pwr";
diff --git a/arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts b/arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts
new file mode 100644 (file)
index 0000000..58cb2ce
--- /dev/null
@@ -0,0 +1,432 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "qcom-pm8841.dtsi"
+#include "qcom-pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       model = "Fairphone 2";
+       compatible = "fairphone,fp2", "qcom,msm8974";
+
+       aliases {
+               mmc0 = &sdhc_1;
+               mmc1 = &sdhc_2;
+               serial0 = &blsp1_uart2;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+       };
+
+       vibrator {
+               compatible = "gpio-vibrator";
+               enable-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
+               vcc-supply = <&pm8941_l18>;
+       };
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       touchscreen@41 {
+               compatible = "ilitek,ili2120";
+               reg = <0x41>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <28 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 55 GPIO_ACTIVE_LOW>;
+
+               touchscreen-size-x = <1080>;
+               touchscreen-size-y = <1920>;
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&imem {
+       reboot-mode {
+               mode-normal     = <0x77665501>;
+               mode-bootloader = <0x77665500>;
+               mode-recovery   = <0x77665502>;
+       };
+};
+
+&otg {
+       status = "okay";
+
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       ulpi {
+               phy@a {
+                       status = "okay";
+
+                       v1p8-supply = <&pm8941_l6>;
+                       v3p3-supply = <&pm8941_l24>;
+
+                       extcon = <&smbb>;
+                       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+               };
+       };
+};
+
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active {
+               pins = "gpio1", "gpio2", "gpio5";
+               function = "normal";
+
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+};
+
+&pronto {
+       status = "okay";
+
+       vddmx-supply = <&pm8841_s1>;
+       vddcx-supply = <&pm8841_s2>;
+       vddpx-supply = <&pm8941_s3>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&wcnss_pin_a>;
+
+       iris {
+               vddxo-supply = <&pm8941_l6>;
+               vddrfa-supply = <&pm8941_l11>;
+               vddpa-supply = <&pm8941_l19>;
+               vdddig-supply = <&pm8941_s3>;
+       };
+
+       smd-edge {
+               qcom,remote-pid = <4>;
+               label = "pronto";
+
+               wcnss {
+                       status = "okay";
+               };
+       };
+};
+
+&remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+};
+
+&remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+};
+
+&rpm_requests {
+       pm8841-regulators {
+               compatible = "qcom,rpm-pm8841-regulators";
+
+               pm8841_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pm8841_s3: s3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+       };
+
+       pm8941-regulators {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <2900000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+};
+
+&smbb {
+       usb-charge-current-limit = <1500000>;
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <1500000>;
+       qcom,fast-charge-safe-voltage = <4380000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,auto-recharge-threshold-voltage = <4240000>;
+       qcom,minimum-input-voltage = <4450000>;
+};
+
+&tlmm {
+       sdc1_on: sdc1-on {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc2_on: sdc2-on {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+
+       wcnss_pin_a: wcnss-pin-active {
+               wlan {
+                       pins =  "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+                       function = "wlan";
+
+                       drive-strength = <6>;
+                       bias-pull-down;
+               };
+
+               bt {
+                       pins = "gpio35", "gpio43", "gpio44";
+                       function = "bt";
+
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               fm {
+                       pins = "gpio41", "gpio42";
+                       function = "fm";
+
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts b/arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts
new file mode 100644 (file)
index 0000000..d6b2300
--- /dev/null
@@ -0,0 +1,813 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "qcom-pma8084.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Samsung Galaxy S5";
+       compatible = "samsung,klte", "qcom,msm8974";
+
+       aliases {
+               serial0 = &blsp1_uart1;
+               mmc0 = &sdhc_1; /* SDC1 eMMC slot */
+               mmc1 = &sdhc_3; /* SDC2 SD card slot */
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               home-key {
+                       label = "home_key";
+                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       i2c-gpio-touchkey {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_touchkey_pins>;
+
+               touchkey@20 {
+                       compatible = "cypress,tm2-touchkey";
+                       reg = <0x20>;
+
+                       interrupt-parent = <&pma8084_gpios>;
+                       interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&touchkey_pin>;
+
+                       vcc-supply = <&max77826_ldo15>;
+                       vdd-supply = <&pma8084_l19>;
+
+                       linux,keycodes = <KEY_APPSELECT KEY_BACK>;
+               };
+       };
+
+       i2c-gpio-led {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_led_gpioex_pins>;
+
+               i2c-gpio,delay-us = <2>;
+
+               gpio_expander: gpio@20 {
+                       compatible = "nxp,pcal6416";
+                       reg = <0x20>;
+
+                       gpio-controller;
+                       #gpio-cells = <2>;
+
+                       vcc-supply = <&pma8084_s4>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&gpioex_pin>;
+
+                       reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>;
+               };
+
+               led-controller@30 {
+                       compatible = "panasonic,an30259a";
+                       reg = <0x30>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       led@1 {
+                               reg = <1>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+
+                       led@3 {
+                               reg = <3>;
+                               function = LED_FUNCTION_STATUS;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+               };
+       };
+
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       vreg_panel: panel-regulator {
+               compatible = "regulator-fixed";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_en_pin>;
+
+               regulator-name = "panel-vddr-reg";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+
+               gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
+       /delete-node/ vreg-boost;
+};
+
+&blsp1_i2c2 {
+       status = "okay";
+
+       touchscreen@20 {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x20>;
+
+               interrupt-parent = <&pma8084_gpios>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+
+               vdd-supply = <&max77826_ldo13>;
+               vio-supply = <&pma8084_lvs2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&touch_pin>;
+
+               syna,startup-delay-ms = <100>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f12@12 {
+                       reg = <0x12>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp1_i2c6 {
+       status = "okay";
+
+       pmic@60 {
+               reg = <0x60>;
+               compatible = "maxim,max77826";
+
+               regulators {
+                       max77826_ldo1: LDO1 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       max77826_ldo2: LDO2 {
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                       };
+
+                       max77826_ldo3: LDO3 {
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       max77826_ldo4: LDO4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo5: LDO5 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo6: LDO6 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo7: LDO7 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo8: LDO8 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo9: LDO9 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_ldo10: LDO10 {
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2950000>;
+                       };
+
+                       max77826_ldo11: LDO11 {
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <2950000>;
+                       };
+
+                       max77826_ldo12: LDO12 {
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo13: LDO13 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo14: LDO14 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       max77826_ldo15: LDO15 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       max77826_buck: BUCK {
+                               regulator-min-microvolt = <1225000>;
+                               regulator-max-microvolt = <1225000>;
+                       };
+
+                       max77826_buckboost: BUCKBOOST {
+                               regulator-min-microvolt = <3400000>;
+                               regulator-max-microvolt = <3400000>;
+                       };
+               };
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&blsp2_i2c6 {
+       status = "okay";
+
+       fuelgauge@36 {
+               compatible = "maxim,max17048";
+               reg = <0x36>;
+
+               maxim,double-soc;
+               maxim,rcomp = /bits/ 8 <0x56>;
+
+               interrupt-parent = <&pma8084_gpios>;
+               interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&fuelgauge_pin>;
+       };
+};
+
+&blsp2_uart2 {
+       status = "okay";
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&blsp2_uart2_pins_active>;
+       pinctrl-1 = <&blsp2_uart2_pins_sleep>;
+
+       bluetooth {
+               compatible = "brcm,bcm43540-bt";
+               max-speed = <3000000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_pins>;
+               device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <75 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wakeup";
+       };
+};
+
+&dsi0 {
+       status = "okay";
+
+       vdda-supply = <&pma8084_l2>;
+       vdd-supply = <&pma8084_l22>;
+       vddio-supply = <&pma8084_l12>;
+
+       panel: panel@0 {
+               reg = <0>;
+               compatible = "samsung,s6e3fa2";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_te_pin &panel_rst_pin>;
+
+               iovdd-supply = <&pma8084_lvs4>;
+               vddr-supply = <&vreg_panel>;
+
+               reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>;
+               te-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&dsi0_out>;
+                       };
+               };
+       };
+};
+
+&dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&dsi0_phy {
+       status = "okay";
+
+       vddio-supply = <&pma8084_l12>;
+};
+
+&gpu {
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&otg {
+       status = "okay";
+
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       ulpi {
+               phy@a {
+                       status = "okay";
+
+                       v1p8-supply = <&pma8084_l6>;
+                       v3p3-supply = <&pma8084_l24>;
+
+                       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+               };
+       };
+};
+
+&pma8084_gpios {
+       gpio_keys_pin_a: gpio-keys-active {
+               pins = "gpio2", "gpio3", "gpio5";
+               function = "normal";
+
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       touchkey_pin: touchkey-int-pin {
+               pins = "gpio6";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       touch_pin: touchscreen-int-pin {
+               pins = "gpio8";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       panel_en_pin: panel-en-pin {
+               pins = "gpio14";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+
+       wlan_sleep_clk_pin: wlan-sleep-clk-pin {
+               pins = "gpio16";
+               function = "func2";
+
+               output-high;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+
+       panel_rst_pin: panel-rst-pin {
+               pins = "gpio17";
+               function = "normal";
+               bias-disable;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+
+       fuelgauge_pin: fuelgauge-int-pin {
+               pins = "gpio21";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+};
+
+&remoteproc_adsp {
+       cx-supply = <&pma8084_s2>;
+};
+
+&remoteproc_mss {
+       cx-supply = <&pma8084_s2>;
+       mss-supply = <&pma8084_s6>;
+       mx-supply = <&pma8084_s1>;
+       pll-supply = <&pma8084_l12>;
+};
+
+&rpm_requests {
+       pma8084-regulators {
+               compatible = "qcom,rpm-pma8084-regulators";
+
+               pma8084_s1: s1 {
+                       regulator-min-microvolt = <675000>;
+                       regulator-max-microvolt = <1050000>;
+                       regulator-always-on;
+               };
+
+               pma8084_s2: s2 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pma8084_s3: s3 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pma8084_s4: s4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_s5: s5 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+               };
+
+               pma8084_s6: s6 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1050000>;
+               };
+
+               pma8084_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pma8084_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pma8084_l3: l3 {
+                       regulator-min-microvolt = <1050000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pma8084_l4: l4 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pma8084_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pma8084_l10: l10 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pma8084_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               pma8084_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+               };
+
+               pma8084_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pma8084_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pma8084_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pma8084_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pma8084_l17: l17 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pma8084_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pma8084_l19: l19 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pma8084_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pma8084_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <200000>;
+                       regulator-allow-set-load;
+               };
+
+               pma8084_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+
+               pma8084_l23: l23 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pma8084_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+               };
+
+               pma8084_l25: l25 {
+                       regulator-min-microvolt = <2100000>;
+                       regulator-max-microvolt = <2100000>;
+               };
+
+               pma8084_l26: l26 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pma8084_l27: l27 {
+                       regulator-min-microvolt = <1000000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pma8084_lvs1: lvs1 {};
+               pma8084_lvs2: lvs2 {};
+               pma8084_lvs3: lvs3 {};
+               pma8084_lvs4: lvs4 {};
+
+               pma8084_5vs1: 5vs1 {};
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pma8084_l20>;
+       vqmmc-supply = <&pma8084_s4>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       vqmmc-supply = <&pma8084_s4>;
+       non-removable;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+
+       wifi@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "host-wake";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>;
+       };
+};
+
+&sdhc_3 {
+       status = "okay";
+       max-frequency = <100000000>;
+       vmmc-supply = <&pma8084_l21>;
+       vqmmc-supply = <&pma8084_l13>;
+
+       /*
+        * cd-gpio is intentionally disabled. If enabled, an SD card
+        * present during boot is not initialized correctly. Without
+        * cd-gpios the driver resorts to polling, so hotplug works.
+        */
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>;
+       /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */
+};
+
+&tlmm {
+       /* This seems suspicious, but somebody with this device should look into it. */
+       blsp2_uart2_pins_active: blsp2-uart2-pins-active {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "blsp_uart8";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       bt_pins: bt-pins {
+               hostwake {
+                       pins = "gpio75";
+                       function = "gpio";
+                       drive-strength = <16>;
+                       input-enable;
+               };
+
+               devwake {
+                       pins = "gpio91";
+                       function = "gpio";
+                       drive-strength = <2>;
+               };
+       };
+
+       sdc1_on: sdhc1-on {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strength = <4>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc3_on: sdc3-on {
+               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+               function = "sdc3";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       sdhc3_cd_pin: sdc3-cd-on {
+               pins = "gpio62";
+               function = "gpio";
+
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_on: sdhc2-on {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+
+       i2c_touchkey_pins: i2c-touchkey {
+               pins = "gpio95", "gpio96";
+               function = "gpio";
+               input-enable;
+               bias-pull-up;
+       };
+
+       i2c_led_gpioex_pins: i2c-led-gpioex {
+               pins = "gpio120", "gpio121";
+               function = "gpio";
+               input-enable;
+               bias-pull-down;
+       };
+
+       gpioex_pin: gpioex {
+               pins = "gpio145";
+               function = "gpio";
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       wifi_pin: wifi {
+               pins = "gpio92";
+               function = "gpio";
+               input-enable;
+               bias-pull-down;
+       };
+
+       panel_te_pin: panel {
+               pins = "gpio12";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
diff --git a/arch/arm/boot/dts/qcom-msm8974pro-sony-xperia-shinano-castor.dts b/arch/arm/boot/dts/qcom-msm8974pro-sony-xperia-shinano-castor.dts
new file mode 100644 (file)
index 0000000..9bd8fae
--- /dev/null
@@ -0,0 +1,608 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "qcom-pm8841.dtsi"
+#include "qcom-pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       model = "Sony Xperia Z2 Tablet";
+       compatible = "sony,xperia-castor", "qcom,msm8974";
+
+       aliases {
+               serial0 = &blsp1_uart2;
+               serial1 = &blsp2_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pin_a>;
+
+               volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+
+               camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA>;
+               };
+
+               camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+               };
+
+               volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+       };
+
+       vreg_bl_vddio: lcd-backlight-vddio {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_bl_vddio";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+
+               gpio = <&tlmm 69 0>;
+               enable-active-high;
+
+               vin-supply = <&pm8941_s3>;
+               startup-delay-us = <70000>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_backlight_en_pin_a>;
+       };
+
+       vreg_vsp: lcd-dcdc-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_vsp";
+               regulator-min-microvolt = <5600000>;
+               regulator-max-microvolt = <5600000>;
+
+               gpio = <&pm8941_gpios 20 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_dcdc_en_pin_a>;
+       };
+
+       vreg_wlan: wlan-regulator {
+               compatible = "regulator-fixed";
+
+               regulator-name = "wl-reg";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pm8941_gpios 18 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_regulator_pin>;
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&blsp2_i2c2 {
+       status = "okay";
+       clock-frequency = <355000>;
+
+       synaptics@2c {
+               compatible = "syna,rmi4-i2c";
+               reg = <0x2c>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <86 IRQ_TYPE_EDGE_FALLING>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               vdd-supply = <&pm8941_l22>;
+               vio-supply = <&pm8941_lvs3>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_pin>;
+
+               syna,startup-delay-ms = <10>;
+
+               rmi-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep = <1>;
+               };
+
+               rmi-f11@11 {
+                       reg = <0x11>;
+                       syna,f11-flip-x = <1>;
+                       syna,sensor-type = <1>;
+               };
+       };
+};
+
+&blsp2_i2c5 {
+       status = "okay";
+       clock-frequency = <355000>;
+
+       lp8566_wled: backlight@2c {
+               compatible = "ti,lp8556";
+               reg = <0x2c>;
+               power-supply = <&vreg_bl_vddio>;
+
+               bl-name = "backlight";
+               dev-ctrl = /bits/ 8 <0x05>;
+               init-brt = /bits/ 8 <0x3f>;
+               rom_a0h {
+                       rom-addr = /bits/ 8 <0xa0>;
+                       rom-val = /bits/ 8 <0xff>;
+               };
+               rom_a1h {
+                       rom-addr = /bits/ 8 <0xa1>;
+                       rom-val = /bits/ 8 <0x3f>;
+               };
+               rom_a2h {
+                       rom-addr = /bits/ 8 <0xa2>;
+                       rom-val = /bits/ 8 <0x20>;
+               };
+               rom_a3h {
+                       rom-addr = /bits/ 8 <0xa3>;
+                       rom-val = /bits/ 8 <0x5e>;
+               };
+               rom_a4h {
+                       rom-addr = /bits/ 8 <0xa4>;
+                       rom-val = /bits/ 8 <0x02>;
+               };
+               rom_a5h {
+                       rom-addr = /bits/ 8 <0xa5>;
+                       rom-val = /bits/ 8 <0x04>;
+               };
+               rom_a6h {
+                       rom-addr = /bits/ 8 <0xa6>;
+                       rom-val = /bits/ 8 <0x80>;
+               };
+               rom_a7h {
+                       rom-addr = /bits/ 8 <0xa7>;
+                       rom-val = /bits/ 8 <0xf7>;
+               };
+               rom_a9h {
+                       rom-addr = /bits/ 8 <0xa9>;
+                       rom-val = /bits/ 8 <0x80>;
+               };
+               rom_aah {
+                       rom-addr = /bits/ 8 <0xaa>;
+                       rom-val = /bits/ 8 <0x0f>;
+               };
+               rom_aeh {
+                       rom-addr = /bits/ 8 <0xae>;
+                       rom-val = /bits/ 8 <0x0f>;
+               };
+       };
+};
+
+&blsp2_uart1 {
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               max-speed = <3000000>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_pin>, <&bt_dev_wake_pin>, <&bt_reg_on_pin>;
+
+               host-wakeup-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
+               device-wakeup-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&pm8941_gpios 16 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&otg {
+       status = "okay";
+
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       ulpi {
+               phy@a {
+                       status = "okay";
+
+                       v1p8-supply = <&pm8941_l6>;
+                       v3p3-supply = <&pm8941_l24>;
+
+                       extcon = <&smbb>;
+                       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+               };
+       };
+};
+
+&pm8941_coincell {
+       status = "okay";
+
+       qcom,rset-ohms = <2100>;
+       qcom,vset-millivolts = <3000>;
+};
+
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active {
+               pins = "gpio2", "gpio5";
+               function = "normal";
+
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       bt_reg_on_pin: bt-reg-on {
+               pins = "gpio16";
+               function = "normal";
+
+               output-low;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       wlan_sleep_clk_pin: wl-sleep-clk {
+               pins = "gpio17";
+               function = "func2";
+
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       wlan_regulator_pin: wl-reg-active {
+               pins = "gpio18";
+               function = "normal";
+
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       lcd_dcdc_en_pin_a: lcd-dcdc-en-active {
+               pins = "gpio20";
+               function = "normal";
+
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+               input-disable;
+               output-low;
+       };
+
+};
+
+&rpm_requests {
+       pm8941-regulators {
+               compatible = "qcom,rpm-pm8941-regulators";
+
+               vdd_l1_l3-supply = <&pm8941_s1>;
+               vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
+               vdd_l4_l11-supply = <&pm8941_s1>;
+               vdd_l5_l7-supply = <&pm8941_s2>;
+               vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
+               vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
+               vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
+               vdd_l21-supply = <&vreg_boost>;
+
+               pm8941_s1: s1 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s2: s2 {
+                       regulator-min-microvolt = <2150000>;
+                       regulator-max-microvolt = <2150000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_s3: s3 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-system-load = <154000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_s4: s4 {
+                       regulator-min-microvolt = <5000000>;
+                       regulator-max-microvolt = <5000000>;
+               };
+
+               pm8941_l1: l1 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l2: l2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l3: l3 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+               };
+
+               pm8941_l4: l4 {
+                       regulator-min-microvolt = <1225000>;
+                       regulator-max-microvolt = <1225000>;
+               };
+
+               pm8941_l5: l5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l6: l6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l7: l7 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l9: l9 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8941_l11: l11 {
+                       regulator-min-microvolt = <1300000>;
+                       regulator-max-microvolt = <1350000>;
+               };
+
+               pm8941_l12: l12 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
+               };
+
+               pm8941_l13: l13 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l14: l14 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8941_l15: l15 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               pm8941_l16: l16 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l17: l17 {
+                       regulator-min-microvolt = <2700000>;
+                       regulator-max-microvolt = <2700000>;
+               };
+
+               pm8941_l18: l18 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l19: l19 {
+                       regulator-min-microvolt = <2850000>;
+                       regulator-max-microvolt = <2850000>;
+               };
+
+               pm8941_l20: l20 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-system-load = <500000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
+               };
+
+               pm8941_l21: l21 {
+                       regulator-min-microvolt = <2950000>;
+                       regulator-max-microvolt = <2950000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_l22: l22 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+               };
+
+               pm8941_l23: l23 {
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+
+               pm8941_l24: l24 {
+                       regulator-min-microvolt = <3075000>;
+                       regulator-max-microvolt = <3075000>;
+                       regulator-boot-on;
+               };
+
+               pm8941_lvs3: lvs3 {};
+       };
+};
+
+&sdhc_1 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+};
+
+&sdhc_2 {
+       status = "okay";
+
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+};
+
+&sdhc_3 {
+       status = "okay";
+
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       non-removable;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdc3_on>;
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       bcrmf@1 {
+               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+
+               brcm,drive-strength = <10>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_sleep_clk_pin>;
+       };
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <1500000>;
+       qcom,fast-charge-current-limit = <1500000>;
+       qcom,dc-current-limit = <1800000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,fast-charge-low-threshold-voltage = <3400000>;
+       qcom,auto-recharge-threshold-voltage = <4200000>;
+       qcom,minimum-input-voltage = <4300000>;
+};
+
+&tlmm {
+       lcd_backlight_en_pin_a: lcd-backlight-vddio {
+               pins = "gpio69";
+               drive-strength = <10>;
+               output-low;
+               bias-disable;
+       };
+
+       sdc1_on: sdc1-on {
+               clk {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc2_on: sdc2-on {
+               clk {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+
+               cd {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       sdc3_on: sdc3-on {
+               clk {
+                       pins = "gpio40";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd {
+                       pins = "gpio39";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+
+               data {
+                       pins = "gpio35", "gpio36", "gpio37", "gpio38";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       ts_int_pin: ts-int-pin {
+               pins = "gpio86";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               input-enable;
+       };
+
+       bt_host_wake_pin: bt-host-wake {
+               pins = "gpio95";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-low;
+       };
+
+       bt_dev_wake_pin: bt-dev-wake {
+               pins = "gpio96";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
index b64c280..1e882e1 100644 (file)
@@ -1,23 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
 #include "qcom-msm8974.dtsi"
 
-/ {
-       soc {
-               sdhci@f9824900 {
-                       clocks = <&gcc GCC_SDCC1_APPS_CLK>,
-                                <&gcc GCC_SDCC1_AHB_CLK>,
-                                <&xo_board>,
-                                <&gcc GCC_SDCC1_CDCCAL_FF_CLK>,
-                                <&gcc GCC_SDCC1_CDCCAL_SLEEP_CLK>;
-                       clock-names = "core", "iface", "xo", "cal", "sleep";
-               };
+&gcc {
+       compatible = "qcom,gcc-msm8974pro";
+};
 
-               clock-controller@fc400000 {
-                               compatible = "qcom,gcc-msm8974pro";
-               };
+&gpu {
+       compatible = "qcom,adreno-330.2", "qcom,adreno";
+};
 
-               adreno@fdb00000 {
-                       compatible = "qcom,adreno-330.2",
-                                    "qcom,adreno";
-               };
-       };
+&sdhc_1 {
+       clocks = <&gcc GCC_SDCC1_APPS_CLK>,
+                <&gcc GCC_SDCC1_AHB_CLK>,
+                <&xo_board>,
+                <&gcc GCC_SDCC1_CDCCAL_FF_CLK>,
+                <&gcc GCC_SDCC1_CDCCAL_SLEEP_CLK>;
+       clock-names = "core", "iface", "xo", "cal", "sleep";
 };
index b3d0f7b..9b7d9d0 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: BSD-3-Clause
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
+#include <dt-bindings/iio/qcom,spmi-vadc.h>
 
 &spmi_bus {
        pm8226_0: pm8226@0 {
                        chg_otg: otg-vbus { };
                };
 
+               rtc@6000 {
+                       compatible = "qcom,pm8941-rtc";
+                       reg = <0x6000>, <0x6100>;
+                       reg-names = "rtc", "alarm";
+                       interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
+               };
+
+               pm8226_vadc: adc@3100 {
+                       compatible = "qcom,spmi-vadc";
+                       reg = <0x3100>;
+                       interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #io-channel-cells = <1>;
+
+                       adc-chan@7 {
+                               reg = <VADC_VSYS>;
+                               qcom,pre-scaling = <1 3>;
+                               label = "vph_pwr";
+                       };
+                       adc-chan@8 {
+                               reg = <VADC_DIE_TEMP>;
+                               label = "die_temp";
+                       };
+                       adc-chan@9 {
+                               reg = <VADC_REF_625MV>;
+                               label = "ref_625mv";
+                       };
+                       adc-chan@a {
+                               reg = <VADC_REF_1250MV>;
+                               label = "ref_1250mv";
+                       };
+                       adc-chan@e {
+                               reg = <VADC_GND_REF>;
+                       };
+                       adc-chan@f {
+                               reg = <VADC_VDD_VADC>;
+                       };
+               };
+
                pm8226_mpps: mpps@a000 {
                        compatible = "qcom,pm8226-mpp", "qcom,spmi-mpp";
                        reg = <0xa000>;
index da00b8f..cdd2bdb 100644 (file)
                        qcom,external-resistor-micro-ohms = <10000>;
                };
 
-               coincell@2800 {
+               pm8941_coincell: coincell@2800 {
                        compatible = "qcom,pm8941-coincell";
                        reg = <0x2800>;
                        status = "disabled";
diff --git a/arch/arm/boot/dts/qcom-pmx65.dtsi b/arch/arm/boot/dts/qcom-pmx65.dtsi
new file mode 100644 (file)
index 0000000..5411b83
--- /dev/null
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+&spmi_bus {
+       pmic@1 {
+               compatible = "qcom,pmx65", "qcom,spmi-pmic";
+               reg = <1 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pmx65_temp: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pmx65_gpios: pinctrl@8800 {
+                       compatible = "qcom,pmx65-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+};
index d455795..1233907 100644 (file)
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
-               ipa_virt: interconnect@1e00000 {
-                       compatible = "qcom,sdx55-ipa-virt";
-                       reg = <0x01e00000 0x100000>;
-                       #interconnect-cells = <1>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
-
                qpic_bam: dma-controller@1b04000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x01b04000 0x1c000>;
                                };
                        };
 
-                       apps_bcm_voter: bcm_voter {
+                       apps_bcm_voter: bcm-voter {
                                compatible = "qcom,bcm-voter";
                        };
                };
index 59457da..79dc31a 100644 (file)
@@ -5,6 +5,10 @@
 /dts-v1/;
 
 #include "qcom-sdx65.dtsi"
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <arm64/qcom/pmk8350.dtsi>
+#include <arm64/qcom/pm8150b.dtsi>
+#include "qcom-pmx65.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. SDX65 MTP";
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               mpss_dsm: memory@8c400000 {
+                       no-map;
+                       reg = <0x8c400000 0x3200000>;
+               };
+
+               ipa_fw_mem: memory@8fced000 {
+                       no-map;
+                       reg = <0x8fced000 0x10000>;
+               };
+
+               mpss_adsp_mem: memory@90800000 {
+                       no-map;
+                       reg = <0x90800000 0x10000000>;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+       };
+
+       vreg_bob_3p3: pmx65_bob {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_bob_3p3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               vin-supply = <&vph_pwr>;
+       };
 };
 
 &blsp1_uart3 {
        status = "ok";
 };
+
+&apps_rsc {
+       pmx65-rpmh-regulators {
+               compatible = "qcom,pmx65-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               vdd-s1-supply = <&vph_pwr>;
+               vdd-s2-supply = <&vph_pwr>;
+               vdd-s3-supply = <&vph_pwr>;
+               vdd-s4-supply = <&vph_pwr>;
+               vdd-s5-supply = <&vph_pwr>;
+               vdd-s6-supply = <&vph_pwr>;
+               vdd-s7-supply = <&vph_pwr>;
+               vdd-s8-supply = <&vph_pwr>;
+               vdd-l1-supply = <&vreg_s2b_1p224>;
+               vdd-l2-l18-supply = <&vreg_s2b_1p224>;
+               vdd-l3-supply = <&vreg_s8b_0p824>;
+               vdd-l4-supply = <&vreg_s7b_0p936>;
+               vdd-l5-l6-l16-supply = <&vreg_s4b_1p824>;
+               vdd-l7-supply = <&vreg_s3b_0p776>;
+               vdd-l8-l9-supply = <&vreg_s8b_0p824>;
+               vdd-l10-supply = <&vreg_bob_3p3>;
+               vdd-l11-l13-supply = <&vreg_bob_3p3>;
+               vdd-l12-supply = <&vreg_s2b_1p224>;
+               vdd-l14-supply = <&vreg_s3b_0p776>;
+               vdd-l15-supply = <&vreg_s2b_1p224>;
+               vdd-l17-supply = <&vreg_s8b_0p824>;
+               vdd-l19-supply = <&vreg_s3b_0p776>;
+               vdd-l20-supply = <&vreg_s7b_0p936>;
+               vdd-l21-supply = <&vreg_s7b_0p936>;
+
+               vreg_s2b_1p224: smps2 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1400000>;
+               };
+
+               vreg_s3b_0p776: smps3 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1040000>;
+               };
+
+               vreg_s4b_1p824: smps4 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2024000>;
+               };
+
+               vreg_s7b_0p936: smps7 {
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1040000>;
+               };
+
+               vreg_s8b_0p824: smps8 {
+                       regulator-min-microvolt = <304000>;
+                       regulator-max-microvolt = <1300000>;
+               };
+
+               ldo1 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo2 {
+                       regulator-min-microvolt = <1128000>;
+                       regulator-max-microvolt = <1128000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo3 {
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo4 {
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo5 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo6 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo7 {
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <752000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo8 {
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo9 {
+                       regulator-min-microvolt = <800000>;
+                       regulator-max-microvolt = <800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo10 {
+                       regulator-min-microvolt = <3088000>;
+                       regulator-max-microvolt = <3088000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo11 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <2928000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo12 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo13 {
+                       regulator-min-microvolt = <1704000>;
+                       regulator-max-microvolt = <2928000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo14 {
+                       regulator-min-microvolt = <600000>;
+                       regulator-max-microvolt = <800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo15 {
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo16 {
+                       regulator-min-microvolt = <1776000>;
+                       regulator-max-microvolt = <1776000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo17 {
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo19 {
+                       regulator-min-microvolt = <752000>;
+                       regulator-max-microvolt = <752000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo20 {
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               ldo21 {
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+};
index 796641d..df6f9d6 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/clock/qcom,gcc-sdx65.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 
 / {
                #size-cells = <1>;
                ranges;
 
+               tz_heap_mem: memory@8fcad000 {
+                       no-map;
+                       reg = <0x8fcad000 0x40000>;
+               };
+
+               secdata_mem: memory@8fcfd000 {
+                       no-map;
+                       reg = <0x8fcfd000 0x1000>;
+               };
+
+               hyp_mem: memory@8fd00000 {
+                       no-map;
+                       reg = <0x8fd00000 0x80000>;
+               };
+
+               access_control_mem: memory@8fd80000 {
+                       no-map;
+                       reg = <0x8fd80000 0x80000>;
+               };
+
+               aop_mem: memory@8fe00000 {
+                       no-map;
+                       reg = <0x8fe00000 0x20000>;
+               };
+
+               smem_mem: memory@8fe20000 {
+                       no-map;
+                       reg = <0x8fe20000 0xc0000>;
+               };
+
                cmd_db: reserved-memory@8fee0000 {
                        compatible = "qcom,cmd-db";
                        reg = <0x8fee0000 0x20000>;
                        no-map;
                };
+
+               tz_mem: memory@8ff00000 {
+                       no-map;
+                       reg = <0x8ff00000 0x100000>;
+               };
+
+               tz_apps_mem: memory@90000000 {
+                       no-map;
+                       reg = <0x90000000 0x500000>;
+               };
+
+               llcc_tcm_mem: memory@15800000 {
+                       no-map;
+                       reg = <0x15800000 0x800000>;
+               };
        };
 
        soc: soc {
                        status = "disabled";
                };
 
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x01f40000 0x40000>;
+                       #hwlock-cells = <1>;
+               };
+
+               sdhc_1: sdhci@8804000 {
+                       compatible = "qcom,sdx65-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0x08804000 0x1000>;
+                       reg-names = "hc_mem";
+                       interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+                       clocks = <&gcc GCC_SDCC1_APPS_CLK>,
+                                <&gcc GCC_SDCC1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       status = "disabled";
+               };
+
+               spmi_bus: qcom,spmi@c440000 {
+                       compatible = "qcom,spmi-pmic-arb";
+                       reg = <0xc440000 0xd00>,
+                               <0xc600000 0x2000000>,
+                               <0xe600000 0x100000>,
+                               <0xe700000 0xa0000>,
+                               <0xc40a000 0x26000>;
+                       reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
+                       interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "periph_irq";
+                       interrupt-controller;
+                       #interrupt-cells = <4>;
+                       #address-cells = <2>;
+                       #size-cells = <0>;
+                       cell-index = <0>;
+                       qcom,channel = <0>;
+                       qcom,ee = <0>;
+               };
+
                tlmm: pinctrl@f100000 {
                        compatible = "qcom,sdx65-tlmm";
                        reg = <0xf100000 0x300000>;
                        interrupt-controller;
                };
 
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,sdx65-smmu-500", "arm,mmu-500";
+                       reg = <0x15000000 0x40000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts =    <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                intc: interrupt-controller@17800000 {
                        compatible = "qcom,msm-qgic2";
                        interrupt-controller;
                              <0x17802000 0x1000>;
                };
 
+               a7pll: clock@17808000 {
+                       compatible = "qcom,sdx55-a7pll";
+                       reg = <0x17808000 0x1000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "bi_tcxo";
+                       #clock-cells = <0>;
+               };
+
+               apcs: mailbox@17810000 {
+                       compatible = "qcom,sdx55-apcs-gcc", "syscon";
+                       reg = <0x17810000 0x2000>;
+                       #mbox-cells = <1>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&a7pll>, <&gcc GPLL0>;
+                       clock-names = "ref", "pll", "aux";
+                       #clock-cells = <0>;
+               };
+
                timer@17820000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                                <WAKE_TCS    2>,
                                <CONTROL_TCS 1>;
 
-                       rpmhcc: clock-controller@1 {
+                       rpmhcc: clock-controller {
                                compatible = "qcom,sdx65-rpmh-clk";
                                #clock-cells = <1>;
                                clock-names = "xo";
                                clocks = <&xo_board>;
                        };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,sdx65-rpmhpd";
+                               #power-domain-cells = <1>;
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp1 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_min_svs: opp2 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp3 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp4 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp5 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp6 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       };
+
+                                       rpmhpd_opp_nom_l1: opp7 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom_l2: opp8 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo: opp9 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp10 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+                               };
+                       };
                };
        };
 
index 3502b5d..c0c145a 100644 (file)
                        compatible = "renesas,r8a7743-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index f5d4b8b..3f4fb53 100644 (file)
                        compatible = "renesas,r8a7744-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index f877c51..fe8e98a 100644 (file)
                rwdt: watchdog@e6020000 {
                        compatible = "renesas,r8a7745-wdt",
                                     "renesas,rcar-gen2-wdt";
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        reg = <0 0xe6020000 0 0x0c>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
index 13ef1e9..c90f2a2 100644 (file)
@@ -91,6 +91,7 @@
                        compatible = "renesas,r8a77470-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index ed6dd4f..a640488 100644 (file)
                        compatible = "renesas,r8a7790-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index 0ccc162..542ed0a 100644 (file)
                        compatible = "renesas,r8a7791-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index 9cdb738..a6d9367 100644 (file)
                        compatible = "renesas,r8a7792-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index dea4b1e..9ebe7bf 100644 (file)
                        compatible = "renesas,r8a7793-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index eac9ed8..b601ee6 100644 (file)
                        compatible = "renesas,r8a7794-wdt",
                                     "renesas,rcar-gen2-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
index 636a6ab..d366591 100644 (file)
                interrupt-parent = <&gic>;
                ranges;
 
+               rtc0: rtc@40006000 {
+                       compatible = "renesas,r9a06g032-rtc", "renesas,rzn1-rtc";
+                       reg = <0x40006000 0x1000>;
+                       interrupts = <GIC_SPI 66 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 67 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "alarm", "timer", "pps";
+                       clocks = <&sysctrl R9A06G032_HCLK_RTC>;
+                       clock-names = "hclk";
+                       power-domains = <&sysctrl>;
+                       status = "disabled";
+               };
+
                wdt0: watchdog@40008000 {
                        compatible = "renesas,r9a06g032-wdt", "renesas,rzn1-wdt";
                        reg = <0x40008000 0x1000>;
                        reg = <0x4000c000 0x1000>;
                        status = "okay";
                        #clock-cells = <1>;
+                       #power-domain-cells = <0>;
 
                        clocks = <&ext_mclk>, <&ext_rtc_clk>,
                                        <&ext_jtag_clk>, <&ext_rgmii_ref>;
                        clock-names = "mclk", "rtc", "jtag", "rgmii_ref_ext";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       dmamux: dma-router@a0 {
+                               compatible = "renesas,rzn1-dmamux";
+                               reg = <0xa0 4>;
+                               #dma-cells = <6>;
+                               dma-requests = <32>;
+                               dma-masters = <&dma0 &dma1>;
+                       };
+               };
+
+               pci_usb: pci@40030000 {
+                       compatible = "renesas,pci-r9a06g032", "renesas,pci-rzn1";
+                       device_type = "pci";
+                       clocks = <&sysctrl R9A06G032_HCLK_USBH>,
+                                <&sysctrl R9A06G032_HCLK_USBPM>,
+                                <&sysctrl R9A06G032_CLK_PCI_USB>;
+                       clock-names = "hclkh", "hclkpm", "pciclk";
+                       power-domains = <&sysctrl>;
+                       reg = <0x40030000 0xc00>,
+                             <0x40020000 0x1100>;
+                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+
+                       bus-range = <0 0>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       #interrupt-cells = <1>;
+                       ranges = <0x02000000 0 0x40020000 0x40020000 0 0x00010000>;
+                       /* Should map all possible DDR as inbound ranges, but
+                        * the IP only supports a 256MB, 512MB, or 1GB window.
+                        * flags, PCI addr (64-bit), CPU addr, PCI size (64-bit)
+                        */
+                       dma-ranges = <0x42000000 0 0x80000000 0x80000000 0 0x40000000>;
+                       interrupt-map-mask = <0xf800 0 0 0x7>;
+                       interrupt-map = <0x0000 0 0 1 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH
+                                        0x0800 0 0 1 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH
+                                        0x1000 0 0 2 &gic GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+
+                       usb@1,0 {
+                               reg = <0x800 0 0 0 0>;
+                               phys = <&usbphy>;
+                               phy-names = "usb";
+                       };
+
+                       usb@2,0 {
+                               reg = <0x1000 0 0 0 0>;
+                               phys = <&usbphy>;
+                               phy-names = "usb";
+                       };
                };
 
                uart0: serial@40060000 {
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART3>, <&sysctrl R9A06G032_HCLK_UART3>;
                        clock-names = "baudclk", "apb_pclk";
+                       dmas =  <&dmamux 0 0 0 0 0 1>, <&dmamux 1 0 0 0 1 1>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART4>, <&sysctrl R9A06G032_HCLK_UART4>;
                        clock-names = "baudclk", "apb_pclk";
+                       dmas =  <&dmamux 2 0 0 0 2 1>, <&dmamux 3 0 0 0 3 1>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART5>, <&sysctrl R9A06G032_HCLK_UART5>;
                        clock-names = "baudclk", "apb_pclk";
+                       dmas =  <&dmamux 4 0 0 0 4 1>, <&dmamux 5 0 0 0 5 1>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART6>, <&sysctrl R9A06G032_HCLK_UART6>;
                        clock-names = "baudclk", "apb_pclk";
+                       dmas =  <&dmamux 6 0 0 0 6 1>, <&dmamux 7 0 0 0 7 1>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        reg-io-width = <4>;
                        clocks = <&sysctrl R9A06G032_CLK_UART7>, <&sysctrl R9A06G032_HCLK_UART7>;
                        clock-names = "baudclk", "apb_pclk";
+                       dmas =  <&dmamux 4 0 0 0 20 1>, <&dmamux 5 0 0 0 21 1>;
+                       dma-names = "rx", "tx";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&sysctrl R9A06G032_HCLK_NAND>, <&sysctrl R9A06G032_CLK_NAND>;
                        clock-names = "hclk", "eclk";
+                       power-domains = <&sysctrl>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                };
 
+               dma0: dma-controller@40104000 {
+                       compatible = "renesas,r9a06g032-dma", "renesas,rzn1-dma";
+                       reg = <0x40104000 0x1000>;
+                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "hclk";
+                       clocks = <&sysctrl R9A06G032_HCLK_DMA0>;
+                       dma-channels = <8>;
+                       dma-requests = <16>;
+                       dma-masters = <1>;
+                       #dma-cells = <3>;
+                       block_size = <0xfff>;
+                       data-width = <8>;
+               };
+
+               dma1: dma-controller@40105000 {
+                       compatible = "renesas,r9a06g032-dma", "renesas,rzn1-dma";
+                       reg = <0x40105000 0x1000>;
+                       interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+                       clock-names = "hclk";
+                       clocks = <&sysctrl R9A06G032_HCLK_DMA1>;
+                       dma-channels = <8>;
+                       dma-requests = <16>;
+                       dma-masters = <1>;
+                       #dma-cells = <3>;
+                       block_size = <0xfff>;
+                       data-width = <8>;
+               };
+
                gic: interrupt-controller@44101000 {
                        compatible = "arm,gic-400", "arm,cortex-a7-gic";
                        interrupt-controller;
        };
 
        timer {
-               compatible = "arm,cortex-a7-timer",
-                            "arm,armv7-timer";
+               compatible = "arm,armv7-timer";
                interrupt-parent = <&gic>;
                arm,cpu-registers-not-fw-configured;
                always-on;
                        <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                        <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
        };
+
+       usbphy: usb-phy {
+               #phy-cells = <0>;
+               compatible = "usb-nop-xceiv";
+               status = "disabled";
+       };
 };
index ba2b889..242ce42 100644 (file)
                status = "disabled";
        };
 
-       pdma: pdma@20078000 {
+       pdma: dma-controller@20078000 {
                compatible = "arm,pl330", "arm,primecell";
                reg = <0x20078000 0x4000>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
                        #interrupt-cells = <2>;
                };
 
-               pcfg_pull_default: pcfg_pull_default {
+               pcfg_pull_default: pcfg-pull-default {
                        bias-pull-pin-default;
                };
 
index 85d3fce..35b7a57 100644 (file)
@@ -7,6 +7,7 @@
 /dts-v1/;
 #include <dt-bindings/i2c/i2c.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "rk3188.dtsi"
 
 / {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&gpio3>;
-               interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PD2 IRQ_TYPE_NONE>;
                interrupt-names = "host-wake";
                brcm,drive-strength = <5>;
                pinctrl-names = "default";
index 5868eb5..6513ffc 100644 (file)
                        <75000000>;
        };
 
-       pdma: pdma@110f0000 {
+       pdma: dma-controller@110f0000 {
                compatible = "arm,pl330", "arm,primecell";
                reg = <0x110f0000 0x4000>;
                interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
index 54de3bc..bc0b735 100644 (file)
@@ -29,8 +29,7 @@
 
        memory@30000000 {
                device_type = "memory";
-               reg = <0x30000000 0x05000000
-                       0x40000000 0x18000000>;
+               reg = <0x30000000 0x05000000>, <0x40000000 0x18000000>;
        };
 
        pmic_ap_clk: clock-0 {
index c8f1c32..daa1067 100644 (file)
@@ -24,9 +24,9 @@
 
        memory@30000000 {
                device_type = "memory";
-               reg = <0x30000000 0x05000000
-                       0x40000000 0x10000000
-                       0x50000000 0x08000000>;
+               reg = <0x30000000 0x05000000>,
+                       <0x40000000 0x10000000>,
+                       <0x50000000 0x08000000>;
        };
 
        reserved-memory {
                        reset-gpios = <&mp05 5 GPIO_ACTIVE_LOW>;
                        vdd3-supply = <&ldo7_reg>;
                        vci-supply = <&ldo17_reg>;
-                       spi-cs-high;
                        spi-max-frequency = <1200000>;
 
                        pinctrl-names = "default";
 };
 
 &i2s0 {
-       dmas = <&pdma0 9>, <&pdma0 10>, <&pdma0 11>;
+       dmas = <&pdma0 10>, <&pdma0 9>, <&pdma0 11>;
        status = "okay";
 };
 
                device-wakeup-gpios = <&gpg3 4 GPIO_ACTIVE_HIGH>;
                interrupt-parent = <&gph2>;
                interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "host-wake";
+               interrupt-names = "host-wakeup";
        };
 };
 
index c6f3914..d32f42d 100644 (file)
@@ -30,9 +30,9 @@
 
        memory@30000000 {
                device_type = "memory";
-               reg = <0x30000000 0x05000000
-                       0x40000000 0x10000000
-                       0x50000000 0x08000000>;
+               reg = <0x30000000 0x05000000>,
+                       <0x40000000 0x10000000>,
+                       <0x50000000 0x08000000>;
        };
 
        pmic_ap_clk: clock-0 {
index 353ba7b..f1b85aa 100644 (file)
                        };
                };
 
-               pdma0: dma@e0900000 {
+               pdma0: dma-controller@e0900000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0xe0900000 0x1000>;
                        interrupt-parent = <&vic0>;
                        clocks = <&clocks CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
-               pdma1: dma@e0a00000 {
+               pdma1: dma-controller@e0a00000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0xe0a00000 0x1000>;
                        interrupt-parent = <&vic0>;
                        clocks = <&clocks CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                adc: adc@e1700000 {
                        reg = <0xeee30000 0x1000>;
                        interrupt-parent = <&vic2>;
                        interrupts = <16>;
-                       dma-names = "rx", "tx", "tx-sec";
-                       dmas = <&pdma1 9>, <&pdma1 10>, <&pdma1 11>;
+                       dma-names = "tx", "rx", "tx-sec";
+                       dmas = <&pdma1 10>, <&pdma1 9>, <&pdma1 11>;
                        clock-names = "iis",
                                      "i2s_opclk0",
                                      "i2s_opclk1";
                        reg = <0xe2100000 0x1000>;
                        interrupt-parent = <&vic2>;
                        interrupts = <17>;
-                       dma-names = "rx", "tx";
-                       dmas = <&pdma1 12>, <&pdma1 13>;
+                       dma-names = "tx", "rx";
+                       dmas = <&pdma1 13>, <&pdma1 12>;
                        clock-names = "iis", "i2s_opclk0";
                        clocks = <&clocks CLK_I2S1>, <&clocks SCLK_AUDIO1>;
                        pinctrl-names = "default";
                        reg = <0xe2a00000 0x1000>;
                        interrupt-parent = <&vic2>;
                        interrupts = <18>;
-                       dma-names = "rx", "tx";
-                       dmas = <&pdma1 14>, <&pdma1 15>;
+                       dma-names = "tx", "rx";
+                       dmas = <&pdma1 15>, <&pdma1 14>;
                        clock-names = "iis", "i2s_opclk0";
                        clocks = <&clocks CLK_I2S2>, <&clocks SCLK_AUDIO2>;
                        pinctrl-names = "default";
                        status = "disabled";
                };
 
-               ehci: ehci@ec200000 {
+               ehci: usb@ec200000 {
                        compatible = "samsung,exynos4210-ehci";
                        reg = <0xec200000 0x100>;
                        interrupts = <23>;
                        interrupt-parent = <&vic1>;
                        clocks = <&clocks CLK_USB_HOST>;
                        clock-names = "usbhost";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       phys = <&usbphy 1>;
+                       phy-names = "host";
                        status = "disabled";
-
-                       port@0 {
-                               reg = <0>;
-                               phys = <&usbphy 1>;
-                       };
                };
 
-               ohci: ohci@ec300000 {
+               ohci: usb@ec300000 {
                        compatible = "samsung,exynos4210-ohci";
                        reg = <0xec300000 0x100>;
                        interrupts = <23>;
                        interrupt-parent = <&vic1>;
                        clocks = <&clocks CLK_USB_HOST>;
                        clock-names = "usbhost";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
+                       phys = <&usbphy 1>;
+                       phy-names = "host";
                        status = "disabled";
-
-                       port@0 {
-                               reg = <0>;
-                               phys = <&usbphy 1>;
-                       };
                };
 
                mfc: codec@f1700000 {
                        clock-names = "sclk_fimg2d", "fimg2d";
                };
 
-               mdma1: mdma@fa200000 {
+               mdma1: dma-controller@fa200000 {
                        compatible = "arm,pl330", "arm,primecell";
                        reg = <0xfa200000 0x1000>;
                        interrupt-parent = <&vic0>;
                        clocks = <&clocks CLK_MDMA>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <1>;
                };
 
                rotator: rotator@fa300000 {
index f691c8f..b632631 100644 (file)
                        #interrupt-cells = <3>;
                        #address-cells = <0>;
                        interrupt-controller;
-                       interrupt-parent;
                        reg = <0xe8c11000 0x1000>,
                                <0xe8c12000 0x2000>;
                };
index 7c1d642..bfaef45 100644 (file)
@@ -46,7 +46,7 @@
                      <0xff113000 0x1000>;
        };
 
-       intc: intc@fffed000 {
+       intc: interrupt-controller@fffed000 {
                compatible = "arm,cortex-a9-gic";
                #interrupt-cells = <3>;
                interrupt-controller;
@@ -80,8 +80,6 @@
                                             <0 110 4>,
                                             <0 111 4>;
                                #dma-cells = <1>;
-                               #dma-channels = <8>;
-                               #dma-requests = <32>;
                                clocks = <&l4_main_clk>;
                                clock-names = "apb_pclk";
                                resets = <&rst DMA_RESET>;
index 3ba431d..26bda25 100644 (file)
@@ -38,7 +38,7 @@
                      <0xff113000 0x1000>;
        };
 
-       intc: intc@ffffd000 {
+       intc: interrupt-controller@ffffd000 {
                compatible = "arm,cortex-a9-gic";
                #interrupt-cells = <3>;
                interrupt-controller;
@@ -73,8 +73,6 @@
                                             <0 90 IRQ_TYPE_LEVEL_HIGH>,
                                             <0 91 IRQ_TYPE_LEVEL_HIGH>;
                                #dma-cells = <1>;
-                               #dma-channels = <8>;
-                               #dma-requests = <32>;
                                clocks = <&l4_main_clk>;
                                clock-names = "apb_pclk";
                                resets = <&rst DMA_RESET>, <&rst DMA_OCP_RESET>;
index dc0bcc7..c28b326 100644 (file)
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>;
-                       clock-names = "SSPCLK", "apb_pclk";
+                       clock-names = "sspclk", "apb_pclk";
                        dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
                               <&dma 8 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>;
-                       clock-names = "SSPCLK", "apb_pclk";
+                       clock-names = "sspclk", "apb_pclk";
                        dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
                               <&dma 9 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        #size-cells = <0>;
                        /* Same clock wired to kernel and pclk */
                        clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>;
-                       clock-names = "SSPCLK", "apb_pclk";
+                       clock-names = "sspclk", "apb_pclk";
                        dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
                               <&dma 0 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        #size-cells = <0>;
                        /* Same clock wired to kernel and pclk */
                        clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>;
-                       clock-names = "SSPCLK", "apb_pclk";
+                       clock-names = "sspclk", "apb_pclk";
                        dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
                               <&dma 35 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        #size-cells = <0>;
                        /* Same clock wired to kernel and pclk */
                        clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>;
-                       clock-names = "SSPCLK", "apb_pclk";
+                       clock-names = "sspclk", "apb_pclk";
                        dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
                               <&dma 33 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
                        #size-cells = <0>;
                        /* Same clock wired to kernel and pclk */
                        clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>;
-                       clock-names = "SSPCLK", "apb_pclk";
+                       clock-names = "sspclk", "apb_pclk";
                        dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
                               <&dma 40 0 0x0>; /* Logical - MemToDev */
                        dma-names = "rx", "tx";
diff --git a/arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts b/arch/arm/boot/dts/ste-ux500-samsung-codina-tmo.dts
new file mode 100644 (file)
index 0000000..d6940e0
--- /dev/null
@@ -0,0 +1,785 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Devicetree for the Samsung Galaxy Exhibit SGH-T599 also known as Codina-TMO,
+ * the "TMO" shall be read "T-Mobile" as this phone was produced exlusively
+ * for T-Mobile in the United States.
+ *
+ * This phone is closely related to the Codina, but has:
+ * - No CPU speed cap, full ~1GHz rate
+ * - Different power management IC, AB8505
+ * - As AB8505 has a micro USB phy, no TI TSU6111
+ * - Different power routing such as the removal of the external LDO for the
+ *   touchscreen in favor of using the AB8505
+ * - Using a regulator for the key backlight LED
+ * - Using the Samsung S6D27A1 panel by default
+ * - The panel is using one of the ordinary AB8505 regulators for 1.8V
+ * - WiFi/Bluetooth combi chip upgraded to BCM4334
+ * - GPIO for backlight control moved from 68 to 69
+ */
+
+/dts-v1/;
+#include "ste-db8500.dtsi"
+#include "ste-ab8505.dtsi"
+#include "ste-dbx5x0-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       model = "Samsung Galaxy Exhibit (SGH-T599)";
+       compatible = "samsung,codina-tmo", "st-ericsson,u8500";
+
+       chosen {
+               stdout-path = &serial2;
+       };
+
+       battery: battery {
+               compatible = "samsung,eb425161lu";
+       };
+
+       thermal-zones {
+               battery-thermal {
+                       /* This zone will be polled by the battery temperature code */
+                       polling-delay = <0>;
+                       polling-delay-passive = <0>;
+                       thermal-sensors = <&bat_therm>;
+               };
+       };
+
+       bat_therm: thermistor {
+               compatible = "samsung,1404-001221";
+               io-channels = <&gpadc 0x02>; /* BatTemp */
+               pullup-uv = <1800000>;
+               pullup-ohm = <230000>;
+               pulldown-ohm = <0>;
+               #thermal-sensor-cells = <0>;
+       };
+
+       /* TI TXS0206 level translator for 2.9 V */
+       sd_level_translator: regulator-gpio {
+               compatible = "regulator-fixed";
+
+               /* GPIO87 EN */
+               gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               regulator-name = "sd-level-translator";
+               regulator-min-microvolt = <2900000>;
+               regulator-max-microvolt = <2900000>;
+               regulator-type = "voltage";
+
+               startup-delay-us = <200>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&sd_level_translator_default>;
+       };
+
+       /* External LDO MIC5366-3.3YMT for eMMC */
+       ldo_3v3_reg: regulator-gpio-ldo-3v3 {
+               compatible = "regulator-fixed";
+               /* Supplied in turn by VBAT */
+               regulator-name = "VMEM_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <5000>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&emmc_ldo_en_default_mode>;
+       };
+
+       /*
+        * External Ricoh RP152L010B-TR LCD LDO regulator for the display.
+        * LCD_PWR_EN controls both the 3.0V output.
+        */
+       lcd_3v0_reg: regulator-gpio-lcd-3v0 {
+               compatible = "regulator-fixed";
+               /* Supplied in turn by VBAT */
+               regulator-name = "VREG_LCD_3.0V";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+               /* GPIO219 controls this regulator */
+               gpio = <&gpio6 27 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&lcd_pwr_en_default_mode>;
+       };
+
+       /*
+        * This regulator is a GPIO line that drives the Broadcom WLAN
+        * line WL_REG_ON high and enables the internal regulators
+        * inside the chip. Unfortunatley it is erroneously named
+        * WLAN_RST_N on the schematic but it is not a reset line.
+        *
+        * The voltage specified here is only used to determine the OCR mask,
+        * the for the SDIO connector, the chip is actually connected
+        * directly to VBAT.
+        */
+       wl_reg: regulator-gpio-wlan {
+               compatible = "regulator-fixed";
+               regulator-name = "WL_REG_ON";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+               startup-delay-us = <100000>;
+               /* GPIO215 (WLAN_RST_N to WL_REG_ON) */
+               gpio = <&gpio6 23 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&wlan_ldo_en_default>;
+       };
+
+       vibrator {
+               compatible = "gpio-vibrator";
+               /* GPIO195 "MOT_EN" */
+               enable-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vibrator_default>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_default_mode>;
+
+               button-home {
+                       linux,code = <KEY_HOME>;
+                       label = "HOME";
+                       /* GPIO91 */
+                       gpios = <&gpio2 27 GPIO_ACTIVE_LOW>;
+               };
+               button-volup {
+                       linux,code = <KEY_VOLUMEUP>;
+                       label = "VOL+";
+                       /* GPIO67 */
+                       gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
+               };
+               button-voldown {
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       label = "VOL-";
+                       /* GPIO92 */
+                       gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       led-touchkeys {
+               compatible = "regulator-led";
+               vled-supply = <&ab8500_ldo_aux4_reg>; // 3.3V
+               default-state = "on";
+               function = LED_FUNCTION_KBD_BACKLIGHT;
+               color = <LED_COLOR_ID_WHITE>;
+       };
+
+       ktd253: backlight {
+               compatible = "kinetic,ktd253";
+               /* GPIO69 is used on Codina R0.4 and Codina TMO */
+               enable-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
+               /* Default to 13/32 brightness */
+               default-brightness = <13>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ktd253_backlight_default_mode>;
+       };
+
+       /* Richtek RT8515GQW Flash LED Driver IC */
+       flash {
+               compatible = "richtek,rt8515";
+               /* GPIO 140 */
+               enf-gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;
+               /* GPIO 141 */
+               ent-gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
+               /*
+                * RFS is 16 kOhm and RTS is 100 kOhm giving
+                * the flash max current 343mA and torch max
+                * current 55 mA.
+                */
+               richtek,rfs-ohms = <16000>;
+               richtek,rts-ohms = <100000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_flash_default_mode>;
+
+               led {
+                       function = LED_FUNCTION_FLASH;
+                       color = <LED_COLOR_ID_WHITE>;
+                       flash-max-timeout-us = <250000>;
+                       flash-max-microamp = <343750>;
+                       led-max-microamp = <55000>;
+               };
+       };
+
+       /* Bit-banged I2C on GPIO143 and GPIO144 also called "SUBPMU I2C" */
+       i2c-gpio-0 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpio4 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpio4 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_gpio_0_default>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* TODO: this should also be used by the SM5103 Camera power management unit */
+       };
+
+       /* Bit-banged I2C on GPIO151 and GPIO152 also called "COMP I2C" */
+       i2c-gpio-1 {
+               compatible = "i2c-gpio";
+               sda-gpios = <&gpio4 24 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               scl-gpios = <&gpio4 23 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&i2c_gpio_1_default>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               magnetometer@c {
+                       compatible = "alps,hscdtd008a";
+                       reg = <0x0c>;
+                       clock-frequency = <400000>;
+
+                       avdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
+                       dvdd-supply = <&ab8500_ldo_aux8_reg>; // 1.8V
+               };
+       };
+
+       spi-gpio-0 {
+               compatible = "spi-gpio";
+               /* Clock on GPIO220, pin SCL */
+               sck-gpios = <&gpio6 28 GPIO_ACTIVE_HIGH>;
+               /* MOSI on GPIO224, pin SDI "slave data in" */
+               mosi-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
+               /* MISO on GPIO225, pin SDO "slave data out" */
+               miso-gpios = <&gpio7 1 GPIO_ACTIVE_HIGH>;
+               /* Chip select on GPIO201 */
+               cs-gpios = <&gpio6 9 GPIO_ACTIVE_LOW>;
+               num-chipselects = <1>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&spi_gpio_0_default>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               panel@0 {
+                       compatible = "samsung,s6d27a1";
+                       spi-max-frequency = <1200000>;
+                       /* TYPE 3: inverse clock polarity and phase */
+                       spi-cpha;
+                       spi-cpol;
+
+                       reg = <0>;
+                       vci-supply = <&lcd_3v0_reg>;
+                       vccio-supply = <&ab8500_ldo_aux6_reg>;
+
+                       /* Reset on GPIO139 */
+                       reset-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
+                       /* LCD_VGH/LCD_DETECT, ESD IRQ on GPIO93 */
+                       interrupt-parent = <&gpio2>;
+                       interrupts = <29 IRQ_TYPE_EDGE_RISING>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&panel_default_mode>;
+                       backlight = <&ktd253>;
+
+                       port {
+                               panel_in: endpoint {
+                                       remote-endpoint = <&display_out>;
+                               };
+                       };
+               };
+       };
+
+       soc {
+               /* External Micro SD slot */
+               mmc@80126000 {
+                       arm,primecell-periphid = <0x10480180>;
+                       max-frequency = <100000000>;
+                       bus-width = <4>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       st,sig-pin-fbclk;
+                       full-pwr-cycle;
+                       /* MMC is powered by AUX3 1.2V .. 2.91V */
+                       vmmc-supply = <&ab8500_ldo_aux3_reg>;
+                       /* 2.9 V level translator is using AUX3 at 2.9 V as well */
+                       vqmmc-supply = <&sd_level_translator>;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&mc0_a_2_default>;
+                       pinctrl-1 = <&mc0_a_2_sleep>;
+                       cd-gpios  = <&gpio6 25 GPIO_ACTIVE_LOW>; // GPIO217
+                       status = "okay";
+               };
+
+               /* WLAN SDIO channel */
+               mmc@80118000 {
+                       arm,primecell-periphid = <0x10480180>;
+                       max-frequency = <50000000>;
+                       bus-width = <4>;
+                       non-removable;
+                       cap-sd-highspeed;
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&mc1_a_2_default>;
+                       pinctrl-1 = <&mc1_a_2_sleep>;
+                       /*
+                        * GPIO-controlled voltage enablement: this drives
+                        * the WL_REG_ON line high when we use this device.
+                        * Represented as regulator to fill OCR mask.
+                        */
+                       vmmc-supply = <&wl_reg>;
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       wifi@1 {
+                               compatible = "brcm,bcm4334-fmac", "brcm,bcm4329-fmac";
+                               reg = <1>;
+                               /* GPIO216 WL_HOST_WAKE */
+                               interrupt-parent = <&gpio6>;
+                               interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
+                               interrupt-names = "host-wake";
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&wlan_default_mode>;
+                       };
+               };
+
+               /* eMMC */
+               mmc@80005000 {
+                       arm,primecell-periphid = <0x10480180>;
+                       max-frequency = <100000000>;
+                       bus-width = <8>;
+                       non-removable;
+                       cap-mmc-highspeed;
+                       mmc-ddr-1_8v;
+                       no-sdio;
+                       no-sd;
+                       vmmc-supply = <&ldo_3v3_reg>;
+                       pinctrl-names = "default", "sleep";
+                       /*
+                        * GPIO130 will be set to input no pull-up resulting in a resistor
+                        * pulling the reset high and taking the memory out of reset.
+                        */
+                       pinctrl-0 = <&mc2_a_1_default>;
+                       pinctrl-1 = <&mc2_a_1_sleep>;
+                       status = "okay";
+               };
+
+               /* GBF (Bluetooth) UART */
+               uart@80120000 {
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&u0_a_1_default>;
+                       pinctrl-1 = <&u0_a_1_sleep>;
+                       status = "okay";
+
+                       bluetooth {
+                               /* BCM4334B0 actually */
+                               compatible = "brcm,bcm4330-bt";
+                               /* GPIO222 rail BT_VREG_EN to BT_REG_ON */
+                               shutdown-gpios = <&gpio6 30 GPIO_ACTIVE_HIGH>;
+                               /* BT_WAKE on GPIO199 */
+                               device-wakeup-gpios = <&gpio6 7 GPIO_ACTIVE_HIGH>;
+                               /* BT_HOST_WAKE on GPIO97 */
+                               /* FIXME: convert to interrupt */
+                               host-wakeup-gpios = <&gpio3 1 GPIO_ACTIVE_HIGH>;
+                               /* BT_RST_N on GPIO209 */
+                               reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&bluetooth_default_mode>;
+                       };
+               };
+
+               /* GPS UART */
+               uart@80121000 {
+                       status = "okay";
+                       pinctrl-names = "default", "sleep";
+                       /* CTS/RTS is not used, CTS is repurposed as GPIO */
+                       pinctrl-0 = <&u1rxtx_a_1_default>;
+                       pinctrl-1 = <&u1rxtx_a_1_sleep>;
+                       /* FIXME: add a device for the GPS here */
+               };
+
+               /* Debugging console UART connected to AB8505 */
+               uart@80007000 {
+                       status = "okay";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&u2rxtx_c_1_default>;
+                       pinctrl-1 = <&u2rxtx_c_1_sleep>;
+               };
+
+               prcmu@80157000 {
+                       ab8505 {
+                               phy {
+                                       pinctrl-names = "default", "sleep";
+                                       pinctrl-0 = <&usb_a_1_default>;
+                                       pinctrl-1 = <&usb_a_1_sleep>;
+                               };
+
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <36000>;
+                               };
+
+                               /* This is mostly identical to the Codina v0.4 regulators */
+                               regulator {
+                                       ab8500_ldo_aux1 {
+                                               regulator-name = "v-sensors-vdd";
+                                               regulator-min-microvolt = <3000000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       ab8500_ldo_aux2 {
+                                               regulator-name = "v-aux2";
+                                               regulator-min-microvolt = <3300000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       ab8500_ldo_aux3 {
+                                               regulator-name = "v-mmc-sd";
+                                       };
+
+                                       ab8500_ldo_aux4 {
+                                               regulator-name = "v-aux4";
+                                               /*
+                                                * Providing some span here makes the touchkey
+                                                * LEDs actually dimmable.
+                                                */
+                                               regulator-min-microvolt = <1100000>;
+                                               regulator-max-microvolt = <3300000>;
+                                       };
+
+                                       ab8500_ldo_aux5 {
+                                               regulator-name = "v-aux5";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       ab8500_ldo_aux6 {
+                                               /* 1.8 V to the display */
+                                               regulator-name = "v-aux6";
+                                               regulator-min-microvolt = <1800000>;
+                                               regulator-max-microvolt = <1800000>;
+                                       };
+
+                                       ab8500_ldo_aux8 {
+                                               regulator-name = "v-sensors-vio";
+                                       };
+                               };
+                       };
+               };
+
+               /* I2C0 also known as "AGC I2C" */
+               i2c@80004000 {
+                       status = "okay";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&i2c0_a_1_default>;
+                       pinctrl-1 = <&i2c0_a_1_sleep>;
+
+                       proximity@39 {
+                               /* Codina has the Amstaos TMD2672 */
+                               compatible = "amstaos,tmd2672";
+                               clock-frequency = <400000>;
+                               reg = <0x39>;
+
+                               /* IRQ on GPIO146 "PS_INT" */
+                               interrupt-parent = <&gpio4>;
+                               interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
+                               vdd-supply = <&ab8500_ldo_aux1_reg>;
+                               vddio-supply = <&ab8500_ldo_aux8_reg>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&tmd2672_codina_default>;
+                       };
+               };
+
+               /* I2C2 on GPIO10 and GPIO11 also called "SENSORS I2C" */
+               i2c@80128000 {
+                       status = "okay";
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&i2c2_b_2_default>;
+                       pinctrl-1 = <&i2c2_b_2_sleep>;
+
+                       /* Bosch BMA254 accelerometer */
+                       accelerometer@18 {
+                               compatible = "bosch,bma254";
+                               reg = <0x18>;
+                               mount-matrix = "0", "1", "0",
+                                              "-1", "0", "0",
+                                              "0", "0", "1";
+                               vddio-supply = <&ab8500_ldo_aux8_reg>; // 1.8V
+                               vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V
+                       };
+               };
+
+               /* I2C3 */
+               i2c@80110000 {
+                       status = "okay";
+
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&i2c3_c_2_default>;
+                       pinctrl-1 = <&i2c3_c_2_sleep>;
+
+                       /* TODO: write bindings and driver for this touchscreen */
+
+                       /* Zinitix BT404 ISP part */
+                       isp@50 {
+                               compatible = "zinitix,bt404-isp";
+                               reg = <0x50>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&tsp_default>;
+                       };
+
+                       /* Zinitix BT404 touchscreen, also has the touchkeys for menu and back */
+                       touchscreen@20 {
+                               compatible = "zinitix,bt404";
+                               reg = <0x20>;
+                               /* GPIO218 (TSP_INT_1V8) */
+                               interrupt-parent = <&gpio6>;
+                               interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
+                               vcca-supply = <&ab8500_ldo_aux2_reg>; // 3.3V
+                               vdd-supply = <&ab8500_ldo_aux5_reg>; // 1.8V
+                               zinitix,mode = <2>;
+                               touchscreen-size-x = <480>;
+                               touchscreen-size-y = <800>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&tsp_default>;
+                       };
+               };
+
+               mcde@a0350000 {
+                       status = "okay";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&dpi_default_mode>;
+
+                       port {
+                               display_out: endpoint {
+                                       remote-endpoint = <&panel_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&pinctrl {
+       /*
+        * This extends the MC0_A_2 default config to include
+        * the card detect GPIO217 line.
+        */
+       sdi0 {
+               mc0_a_2_default {
+                       default_cfg4 {
+                               pins = "GPIO217_AH12"; /* card detect */
+                               ste,config = <&gpio_in_pd>;
+                       };
+               };
+       };
+       sdi2 {
+               /*
+                * GPIO130 should be set in GPIO mode and
+                * pulled down. (Not connected.)
+                */
+               mc2_a_1_default {
+                       default_cfg2 {
+                               pins = "GPIO130_C8"; /* FBCLK */
+                               ste,config = <&gpio_in_pd>;
+                       };
+               };
+       };
+       /* GPIO that enables the 2.9V SD card level translator */
+       sd-level-translator {
+               sd_level_translator_default: sd_level_translator_default {
+                       /* level shifter on GPIO87 */
+                       codina_cfg1 {
+                               pins = "GPIO87_B3";
+                               ste,config = <&gpio_out_hi>;
+                       };
+               };
+       };
+       /* GPIO that enables the LDO regulator for the eMMC */
+       emmc-ldo {
+               emmc_ldo_en_default_mode: emmc_ldo_default {
+                       /* LDO enable on GPIO223 */
+                       codina_cfg1 {
+                               pins = "GPIO223_AH9";
+                               ste,config = <&gpio_out_hi>;
+                       };
+               };
+       };
+       /* GPIOs for panel control */
+       panel {
+               panel_default_mode: panel_default {
+                       codina_cfg1 {
+                               /* Reset line */
+                               pins = "GPIO139_C9";
+                               ste,config = <&gpio_out_lo>;
+                       };
+                       codina_cfg2 {
+                               /* ESD IRQ line "LCD detect" */
+                               pins = "GPIO93_B7";
+                               ste,config = <&gpio_in_nopull>;
+                       };
+               };
+       };
+       /* GPIO that enables the LDO regulator for the LCD display */
+       lcd-ldo {
+               lcd_pwr_en_default_mode: lcd_pwr_en_default {
+                       /* LCD_PWR_EN on GPIO219 */
+                       codina_cfg1 {
+                               pins = "GPIO219_AG10";
+                               ste,config = <&gpio_out_hi>;
+                       };
+               };
+       };
+       /* GPIO that enables the WLAN internal LDO regulators */
+       wlan-ldo {
+               wlan_ldo_en_default: wlan_ldo_default {
+                       /* GPIO215 named WLAN_RST_N */
+                       codina_cfg1 {
+                               pins = "GPIO215_AH13";
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
+       /* Backlight GPIO */
+       backlight {
+               ktd253_backlight_default_mode: backlight_default {
+                       skomer_cfg1 {
+                               pins = "GPIO69_E2"; /* LCD_BL_CTRL */
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
+       /* Flash and torch */
+       flash {
+               gpio_flash_default_mode: flash_default {
+                       codina_cfg1 {
+                               pins = "GPIO140_B11", "GPIO141_C12";
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
+       /* GPIO keys */
+       gpio-keys {
+               gpio_keys_default_mode: gpio_keys_default {
+                       skomer_cfg1 {
+                               pins = "GPIO67_G2", /* VOL UP */
+                                      "GPIO91_B6", /* HOME */
+                                      "GPIO92_D6"; /* VOL DOWN */
+                               ste,config = <&gpio_in_pu>;
+                       };
+               };
+       };
+       /* Interrupt line for the Zinitix BT404 touchscreen */
+       tsp {
+               tsp_default: tsp_default {
+                       codina_cfg1 {
+                               pins = "GPIO218_AH11";  /* TSP_INT_1V8 */
+                               ste,config = <&gpio_in_nopull>;
+                       };
+               };
+       };
+       /* Interrupt line for light/proximity sensor TMD2672 */
+       tmd2672 {
+               tmd2672_codina_default: tmd2672_codina {
+                       codina_cfg1 {
+                               pins = "GPIO146_D13";
+                               ste,config = <&gpio_in_nopull>;
+                       };
+               };
+       };
+       /* GPIO-based I2C bus for subpmu */
+       i2c-gpio-0 {
+               i2c_gpio_0_default: i2c_gpio_0 {
+                       codina_cfg1 {
+                               pins = "GPIO143_D12", "GPIO144_B13";
+                               ste,config = <&gpio_in_nopull>;
+                       };
+               };
+       };
+       /* GPIO-based I2C bus for the NFC */
+       i2c-gpio-1 {
+               i2c_gpio_1_default: i2c_gpio_1 {
+                       codina_cfg1 {
+                               pins = "GPIO151_D17", "GPIO152_D16";
+                               ste,config = <&gpio_in_nopull>;
+                       };
+               };
+       };
+       /* GPIO-based SPI bus for the display */
+       spi-gpio-0 {
+               spi_gpio_0_default: spi_gpio_0_d {
+                       codina_cfg1 {
+                               pins = "GPIO220_AH10", "GPIO201_AF24", "GPIO224_AG9";
+                               ste,config = <&gpio_out_hi>;
+                       };
+                       codina_cfg2 {
+                               pins = "GPIO225_AG8";
+                               /* Needs pull down, no pull down resistor on board */
+                               ste,config = <&gpio_in_pd>;
+                       };
+               };
+               spi_gpio_0_sleep: spi_gpio_0_s {
+                       codina_cfg1 {
+                               pins = "GPIO220_AH10", "GPIO201_AF24",
+                                      "GPIO224_AG9", "GPIO225_AG8";
+                               ste,config = <&gpio_out_hi>;
+                       };
+               };
+       };
+       wlan {
+               wlan_default_mode: wlan_default {
+                       /* GPIO216 for WL_HOST_WAKE */
+                       codina_cfg2 {
+                               pins = "GPIO216_AG12";
+                               ste,config = <&gpio_in_pd>;
+                       };
+               };
+       };
+       bluetooth {
+               bluetooth_default_mode: bluetooth_default {
+                       /* GPIO199 BT_WAKE and GPIO222 BT_VREG_ON */
+                       codina_cfg1 {
+                               pins = "GPIO199_AH23", "GPIO222_AJ9";
+                               ste,config = <&gpio_out_lo>;
+                       };
+                       /* GPIO97 BT_HOST_WAKE */
+                       codina_cfg2 {
+                               pins = "GPIO97_D9";
+                               ste,config = <&gpio_in_nopull>;
+                       };
+                       /* GPIO209 BT_RST_N */
+                       codina_cfg3 {
+                               pins = "GPIO209_AG15";
+                               ste,config = <&gpio_out_hi>;
+                       };
+               };
+       };
+       vibrator {
+               vibrator_default: vibrator_default {
+                       codina_cfg1 {
+                               pins = "GPIO195_AG28";  /* MOT_EN */
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
+       mcde {
+               dpi_default_mode: dpi_default {
+                       default_mux1 {
+                               /* Mux in all the data lines */
+                               function = "lcd";
+                               groups =
+                                       /* Data lines D0-D7 GPIO70..GPIO77 */
+                                       "lcd_d0_d7_a_1",
+                                       /* Data lines D8-D11 GPIO78..GPIO81 */
+                                       "lcd_d8_d11_a_1",
+                                       /* Data lines D12-D15 GPIO82..GPIO85 */
+                                       "lcd_d12_d15_a_1",
+                                       /* Data lines D16-D23 GPIO161..GPIO168 */
+                                       "lcd_d16_d23_b_1";
+                       };
+                       default_mux2 {
+                               function = "lcda";
+                               /* Clock line on GPIO150, DE, VSO, HSO on GPIO169..GPIO171 */
+                               groups = "lcdaclk_b_1", "lcda_b_1";
+                       };
+                       /* Input, no pull-up is the default state for pins used for an alt function */
+                       default_cfg1 {
+                               pins = "GPIO150_C14", "GPIO169_D22", "GPIO170_C23", "GPIO171_D23";
+                               ste,config = <&in_nopull>;
+                       };
+               };
+       };
+};
index 1c1725d..b6746ac 100644 (file)
@@ -9,9 +9,13 @@
  * the boot loader.
  *
  * The Samsung tree further talks about GT-I8160P and GT-I8160chn (China).
- * The GT-I8160 plain is knonw as the "europe" variant.
- * The GT-I8160P appears to not use the ST Microelectronics accelerometer.
+ * The GT-I8160 plain is known as the "europe" variant.
+ * The GT-I8160P is the CDMA version and it appears to not use the ST
+ * Microelectronics accelerometer and reportedly has NFC mounted.
  * The GT-I8160chn appears to be the same as the europe variant.
+ *
+ * There is also the Codina-TMO, Samsung SGH-T599, which has its own device
+ * tree.
  */
 
 /dts-v1/;
                #address-cells = <1>;
                #size-cells = <0>;
 
-               /* TODO: add the NFC chip here */
+               nfc@2b {
+                       /* NXP NFC circuit PN544 C1 marked NXP 44501  */
+                       compatible = "nxp,pn544-i2c";
+                       /* IF0, IF1 high, gives I2C address 0x2B */
+                       reg = <0x2b>;
+                       clock-frequency = <400000>;
+                       /* NFC IRQ on GPIO32 */
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
+                       /* GPIO 31 */
+                       firmware-gpios = <&gpio0 31 GPIO_ACTIVE_HIGH>;
+                       /* GPIO88 */
+                       enable-gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pn544_codina_default>;
+               };
        };
 
        spi-gpio-0 {
                uart@80121000 {
                        status = "okay";
                        pinctrl-names = "default", "sleep";
-                       /* CTS/RTS is not used, CTS is repurposed as GPIO */
-                       pinctrl-0 = <&u1rxtx_a_1_default>;
-                       pinctrl-1 = <&u1rxtx_a_1_sleep>;
-                       /* FIXME: add a device for the GPS here */
+                       pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
+                       pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;
+
+                       gnss {
+                               compatible = "brcm,bcm4751";
+                               /* GPS_RSTN on GPIO21 */
+                               reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
+                               /* GPS_ON_OFF on GPIO86 */
+                               enable-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
+                               /* GPS_1V8 (VSMPS2) */
+                               vddio-supply = <&db8500_vsmps2_reg>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&bcm4751_codina_default>;
+                       };
                };
 
                /* Debugging console UART connected to TSU6111RSVR (FSA880) */
                                        pinctrl-1 = <&usb_a_1_sleep>;
                                };
 
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <36000>;
+                               };
+
                                regulator {
                                        ab8500_ldo_aux1 {
                                                /* Used for VDD for sensors */
                        pinctrl-0 = <&i2c0_a_1_default>;
                        pinctrl-1 = <&i2c0_a_1_sleep>;
 
-                       /* TODO: write bindings and driver for this proximity sensor */
                        proximity@39 {
-                               /* Codina has the Mouser TMD2672 */
-                               compatible = "mouser,tmd2672";
+                               /* Codina has the Amstaos TMD2672 */
+                               compatible = "amstaos,tmd2672";
                                clock-frequency = <400000>;
                                reg = <0x39>;
 
                        };
                };
        };
+       nfc {
+               pn544_codina_default: pn544_codina {
+                       /* Interrupt line */
+                       codina_cfg1 {
+                               pins = "GPIO32_V2";
+                               ste,config = <&gpio_in_nopull>;
+                       };
+                       /* Enable and firmware GPIOs */
+                       codina_cfg2 {
+                               pins = "GPIO31_V3", "GPIO88_C4";
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
+       bcm4751 {
+               bcm4751_codina_default: bcm4751_codina {
+                       /* Reset line, start out asserted */
+                       codina_cfg1 {
+                               pins = "GPIO21_AB3";
+                               ste,config = <&gpio_out_lo>;
+                       };
+                       /* GPS_ON_OFF, start out deasserted (off) */
+                       codina_cfg2 {
+                               pins = "GPIO86_C6";
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
        vibrator {
                vibrator_default: vibrator_default {
                        codina_cfg1 {
index fd17097..53062d5 100644 (file)
                                        pinctrl-1 = <&usb_a_1_sleep>;
                                };
 
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <43000>;
+                               };
+
                                regulator {
                                        ab8500_ldo_aux1 {
                                                /* Used for VDD for sensors */
index 290ab59..b0dce91 100644 (file)
                                        pinctrl-1 = <&usb_a_1_sleep>;
                                };
 
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <36000>;
+                               };
+
                                regulator {
                                        ab8500_ldo_aux1 {
                                                regulator-name = "sensor_3v";
index 42762bf..e6d4fd0 100644 (file)
                        /* CTS/RTS is not used, CTS is repurposed as GPIO */
                        pinctrl-0 = <&u1rxtx_a_1_default>;
                        pinctrl-1 = <&u1rxtx_a_1_sleep>;
-                       /* FIXME: add a device for the GPS here */
+
+                       gnss {
+                               /*
+                                * The Low Noise Amplifier (LNA) power and enablement is controlled
+                                * autonomously by the GSD4t.
+                                * Janice has a SiRFstarIV-based GSD4t
+                                * Golden has a SiRFstarV 5t-based CSRG05TA03-ICJE-R.
+                                */
+                               compatible = "csr,gsd4t";
+                               /* GPS_RSTN on GPIO21 */
+                               reset-gpios = <&gpio0 21 GPIO_ACTIVE_LOW>;
+                               /* GPS_ON_OFF on GPIO96 */
+                               sirf,onoff-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
+                               /* GPS_1V8 (VSMPS2) */
+                               vcc-supply = <&db8500_vsmps2_reg>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&gsd4t_janice_default>;
+                               /* According to /etc/sirfgps.conf */
+                               current-speed = <460800>;
+                       };
                };
 
                /* Debugging console UART connected to TSU6111RSVR (FSA880) */
                                        pinctrl-1 = <&usb_a_1_sleep>;
                                };
 
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <15000>;
+                               };
+
                                regulator {
                                        ab8500_ldo_aux1 {
                                                /* Used for VDD for sensors */
                        };
                };
        };
+       gsd4t {
+               gsd4t_janice_default: gsd4t_janice {
+                       /* Reset line, start out asserted */
+                       janice_cfg1 {
+                               pins = "GPIO21_AB3";
+                               ste,config = <&gpio_out_lo>;
+                       };
+                       /* GPS_ON_OFF, start out deasserted (off) */
+                       janice_cfg2 {
+                               pins = "GPIO96_D8";
+                               ste,config = <&gpio_out_lo>;
+                       };
+                       /* Unused power enablement line, used in R0.0 and R0.1 boards */
+                       janice_cfg3 {
+                               pins = "GPIO86_C6";
+                               ste,config = <&gpio_in_pd>;
+                       };
+               };
+       };
 };
index 2a5bf54..c57676f 100644 (file)
                                        pinctrl-1 = <&usb_a_1_sleep>;
                                };
 
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <36000>;
+                               };
+
                                regulator {
                                        ab8500_ldo_aux1 {
                                                /* Used for VDD for sensors */
index dcb03ce..81b341a 100644 (file)
                        };
                };
 
-               /* GPF UART */
+               /* GPS UART */
                uart@80121000 {
                        status = "okay";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&u1rxtx_a_1_default &u1ctsrts_a_1_default>;
                        pinctrl-1 = <&u1rxtx_a_1_sleep &u1ctsrts_a_1_sleep>;
+
+                       gnss {
+                               /* The CSRG05TA03-ICJE-R is a SirfStarV 5t chip */
+                               compatible = "csr,csrg05ta03-icje-r";
+                               /* GPS_RSTN on GPIO209 */
+                               reset-gpios = <&gpio6 17 GPIO_ACTIVE_LOW>;
+                               /* GPS_ON_OFF on GPIO86 */
+                               sirf,onoff-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
+                               /* GPS_1V8 (VSMPS2) */
+                               vcc-supply = <&db8500_vsmps2_reg>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&g05ta03_skomer_default>;
+                               /* According to /etc/sirfgps.conf */
+                               current-speed = <460800>;
+                       };
                };
 
                /* Debugging console UART connected to AB8505 USB */
                                        pinctrl-1 = <&usb_a_1_sleep>;
                                };
 
+                               ab8500_fg {
+                                       line-impedance-micro-ohms = <16000>;
+                               };
+
                                regulator {
                                        ab8500_ldo_aux1 {
                                                /* Used for VDD for sensors */
                        };
                };
        };
+       g05ta03 {
+               g05ta03_skomer_default: g05ta03 {
+                       /* Reset line, start out de-asserted */
+                       skomer_cfg1 {
+                               pins = "GPIO209_AG15";
+                               ste,config = <&gpio_out_hi>;
+                       };
+                       /* GPS_ON_OFF, start out deasserted (off) */
+                       skomer_cfg2 {
+                               pins = "GPIO86_C6";
+                               ste,config = <&gpio_out_lo>;
+                       };
+               };
+       };
 };
 
 &ab8505_gpio {
index 155d9ff..500bcc3 100644 (file)
@@ -45,7 +45,7 @@
 
 / {
        soc {
-               pinctrl: pin-controller@40020000 {
+               pinctrl: pinctrl@40020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0x40020000 0x3000>;
index 1cf8a23..8f37aef 100644 (file)
@@ -9,7 +9,7 @@
 
 / {
        soc {
-               pinctrl: pin-controller@40020000 {
+               pinctrl: pinctrl@40020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0x40020000 0x3000>;
index 6e42ca2..91dde07 100644 (file)
                        status = "disabled";
                };
 
-               pinctrl: pin-controller@58020000 {
+               pinctrl: pinctrl@58020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "st,stm32h743-pinctrl";
index 1708c79..f9ebc47 100644 (file)
                        compatible = "fixed-clock";
                        clock-frequency = <99000000>;
                };
+
+               clk_rtc_k: clk-rtc-k {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <32768>;
+               };
        };
 
        intc: interrupt-controller@a0021000 {
                        status = "disabled";
                };
 
+               rtc: rtc@5c004000 {
+                       compatible = "st,stm32mp1-rtc";
+                       reg = <0x5c004000 0x400>;
+                       interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk_pclk4>, <&clk_rtc_k>;
+                       clock-names = "pclk", "rtc_ck";
+                       status = "disabled";
+               };
+
                bsec: efuse@5c005000 {
                        compatible = "st,stm32mp15-bsec";
                        reg = <0x5c005000 0x400>;
                 * Break node order to solve dependency probe issue between
                 * pinctrl and exti.
                 */
-               pinctrl: pin-controller@50002000 {
+               pinctrl: pinctrl@50002000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "st,stm32mp135-pinctrl";
                        ranges = <0 0x50002000 0x8400>;
+                       interrupt-parent = <&exti>;
+                       st,syscfg = <&exti 0x60 0xff>;
                        pins-are-numbered;
 
                        gpioa: gpio@50002000 {
index ee100d1..09d6226 100644 (file)
@@ -6,6 +6,9 @@
 
 /dts-v1/;
 
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
 #include "stm32mp135.dtsi"
 #include "stm32mp13xf.dtsi"
 #include "stm32mp13-pinctrl.dtsi"
                reg = <0xc0000000 0x20000000>;
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               user-pa13 {
+                       label = "User-PA13";
+                       linux,code = <BTN_1>;
+                       gpios = <&gpioa 13 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-blue {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+               };
+       };
+
        vdd_sd: vdd-sd {
                compatible = "regulator-fixed";
                regulator-name = "vdd_sd";
        status = "okay";
 };
 
+&rtc {
+       status = "okay";
+};
+
 &sdmmc1 {
        pinctrl-names = "default", "opendrain", "sleep";
        pinctrl-0 = <&sdmmc1_b4_pins_a &sdmmc1_clk_pins_a>;
index f0d66d8..6052243 100644 (file)
                };
        };
 
+       ethernet0_rmii_pins_c: rmii-2 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 13, AF11)>, /* ETH1_RMII_TXD0 */
+                                <STM32_PINMUX('G', 14, AF11)>, /* ETH1_RMII_TXD1 */
+                                <STM32_PINMUX('B', 11, AF11)>, /* ETH1_RMII_TX_EN */
+                                <STM32_PINMUX('A', 1, AF11)>,  /* ETH1_RMII_REF_CLK */
+                                <STM32_PINMUX('A', 2, AF11)>,  /* ETH1_MDIO */
+                                <STM32_PINMUX('C', 1, AF11)>;  /* ETH1_MDC */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <2>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('C', 4, AF11)>,  /* ETH1_RMII_RXD0 */
+                                <STM32_PINMUX('C', 5, AF11)>,  /* ETH1_RMII_RXD1 */
+                                <STM32_PINMUX('A', 7, AF11)>;  /* ETH1_RMII_CRS_DV */
+                       bias-disable;
+               };
+       };
+
+       ethernet0_rmii_sleep_pins_c: rmii-sleep-2 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('G', 13, ANALOG)>, /* ETH1_RMII_TXD0 */
+                                <STM32_PINMUX('G', 14, ANALOG)>, /* ETH1_RMII_TXD1 */
+                                <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_RMII_TX_EN */
+                                <STM32_PINMUX('A', 2, ANALOG)>,  /* ETH1_MDIO */
+                                <STM32_PINMUX('C', 1, ANALOG)>,  /* ETH1_MDC */
+                                <STM32_PINMUX('C', 4, ANALOG)>,  /* ETH1_RMII_RXD0 */
+                                <STM32_PINMUX('C', 5, ANALOG)>,  /* ETH1_RMII_RXD1 */
+                                <STM32_PINMUX('A', 1, ANALOG)>,  /* ETH1_RMII_REF_CLK */
+                                <STM32_PINMUX('A', 7, ANALOG)>;  /* ETH1_RMII_CRS_DV */
+               };
+       };
+
        fmc_pins_a: fmc-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('D', 4, AF12)>, /* FMC_NOE */
                };
        };
 
+       mco2_pins_a: mco2-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('G', 2, AF1)>; /* MCO2 */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <2>;
+               };
+       };
+
+       mco2_sleep_pins_a: mco2-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('G', 2, ANALOG)>; /* MCO2 */
+               };
+       };
+
        m_can1_pins_a: m-can1-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('H', 13, AF9)>; /* CAN1_TX */
                        bias-disable;
                };
        };
+
+       spi1_pins_b: spi1-1 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('A', 5, AF5)>, /* SPI1_SCK */
+                                <STM32_PINMUX('B', 5, AF5)>; /* SPI1_MOSI */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <1>;
+               };
+
+               pins2 {
+                       pinmux = <STM32_PINMUX('A', 6, AF5)>; /* SPI1_MISO */
+                       bias-disable;
+               };
+       };
 };
index f9aa9af..1b2fd34 100644 (file)
                status = "disabled";
        };
 
+       firmware {
+               optee: optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+                       status = "disabled";
+               };
+
+               scmi: scmi {
+                       compatible = "linaro,scmi-optee";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       linaro,optee-channel-id = <0>;
+                       shmem = <&scmi_shm>;
+                       status = "disabled";
+
+                       scmi_clk: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+
+                       scmi_reset: protocol@16 {
+                               reg = <0x16>;
+                               #reset-cells = <1>;
+                       };
+               };
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <1>;
                interrupt-parent = <&intc>;
                ranges;
 
+               scmi_sram: sram@2ffff000 {
+                       compatible = "mmio-sram";
+                       reg = <0x2ffff000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x2ffff000 0x1000>;
+
+                       scmi_shm: scmi-sram@0 {
+                               compatible = "arm,scmi-shmem";
+                               reg = <0 0x80>;
+                               status = "disabled";
+                       };
+               };
+
                timers2: timer@40000000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                 * Break node order to solve dependency probe issue between
                 * pinctrl and exti.
                 */
-               pinctrl: pin-controller@50002000 {
+               pinctrl: pinctrl@50002000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "st,stm32mp157-pinctrl";
                        };
                };
 
-               pinctrl_z: pin-controller-z@54004000 {
+               pinctrl_z: pinctrl@54004000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "st,stm32mp157-z-pinctrl";
diff --git a/arch/arm/boot/dts/stm32mp151a-prtt1a.dts b/arch/arm/boot/dts/stm32mp151a-prtt1a.dts
new file mode 100644 (file)
index 0000000..75874ea
--- /dev/null
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp151a-prtt1l.dtsi"
+
+/ {
+       model = "Protonic PRTT1A";
+       compatible = "prt,prtt1a", "st,stm32mp151";
+};
+
+&ethernet0 {
+       phy-handle = <&phy0>;
+};
+
+&mdio0 {
+       /* TI DP83TD510E */
+       phy0: ethernet-phy@0 {
+               compatible = "ethernet-phy-id2000.0181";
+               reg = <0>;
+               interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+};
+
+&pwm5_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('A', 0, AF2)>; /* TIM5_CH1 */
+       };
+};
+
+&pwm5_sleep_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('A', 0, ANALOG)>; /* TIM5_CH1 */
+       };
+};
+
+&timers5 {
+       status = "okay";
+
+       pwm {
+               pinctrl-0 = <&pwm5_pins_a>;
+               pinctrl-1 = <&pwm5_sleep_pins_a>;
+               pinctrl-names = "default", "sleep";
+               status = "okay";
+       };
+};
diff --git a/arch/arm/boot/dts/stm32mp151a-prtt1c.dts b/arch/arm/boot/dts/stm32mp151a-prtt1c.dts
new file mode 100644 (file)
index 0000000..7ecf312
--- /dev/null
@@ -0,0 +1,304 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp151a-prtt1l.dtsi"
+
+/ {
+       model = "Protonic PRTT1C";
+       compatible = "prt,prtt1c", "st,stm32mp151";
+
+       clock_ksz9031: clock-ksz9031 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <25000000>;
+       };
+
+       clock_sja1105: clock-sja1105 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <25000000>;
+       };
+
+       mdio0: mdio {
+               compatible = "virtual,mdio-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpios = <&gpioc 1 GPIO_ACTIVE_HIGH
+                        &gpioa 2 GPIO_ACTIVE_HIGH>;
+
+       };
+
+       wifi_pwrseq: wifi-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpiod 8 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&ethernet0 {
+       fixed-link {
+               speed = <100>;
+               full-duplex;
+       };
+};
+
+&gpioa {
+       gpio-line-names =
+               "", "", "", "PHY0_nRESET", "PHY0_nINT", "", "", "",
+               "", "", "", "", "", "", "", "SPI1_nSS";
+};
+
+&gpiod {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "WFM_RESET", "", "", "", "", "", "", "";
+};
+
+&gpioe {
+       gpio-line-names =
+               "SDMMC2_nRESET", "", "", "", "", "", "SPI1_nRESET", "",
+               "", "", "", "", "WFM_nIRQ", "", "", "";
+};
+
+&gpiog {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "PHY3_nINT",
+               "PHY1_nINT", "PHY3_nRESET", "PHY2_nINT", "PHY2_nRESET",
+               "PHY1_nRESET", "SPE1_PWR", "SPE0_PWR", "";
+};
+
+&mdio0 {
+       /* All this DP83TD510E PHYs can't be probed before switch@0 is
+        * probed so we need to use compatible with PHYid
+        */
+       /* TI DP83TD510E */
+       t1l0_phy: ethernet-phy@6 {
+               compatible = "ethernet-phy-id2000.0181";
+               reg = <6>;
+               interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+
+       /* TI DP83TD510E */
+       t1l1_phy: ethernet-phy@7 {
+               compatible = "ethernet-phy-id2000.0181";
+               reg = <7>;
+               interrupts-extended = <&gpiog 8 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpiog 12 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+
+       /* TI DP83TD510E */
+       t1l2_phy: ethernet-phy@10 {
+               compatible = "ethernet-phy-id2000.0181";
+               reg = <10>;
+               interrupts-extended = <&gpiog 10 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpiog 11 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+
+       /* Micrel KSZ9031 */
+       rj45_phy: ethernet-phy@2 {
+               reg = <2>;
+               interrupts-extended = <&gpiog 7 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpiog 9 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <1000>;
+
+               clocks = <&clock_ksz9031>;
+       };
+};
+
+&qspi {
+       status = "disabled";
+};
+
+&sdmmc2 {
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_a>;
+       pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_a>;
+       pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_a>;
+       non-removable;
+       no-sd;
+       no-sdio;
+       no-1-8-v;
+       st,neg-edge;
+       bus-width = <8>;
+       vmmc-supply = <&reg_3v3>;
+       vqmmc-supply = <&reg_3v3>;
+       status = "okay";
+};
+
+&sdmmc2_b4_od_pins_a {
+       pins1 {
+               pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
+                        <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
+                        <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
+                        <STM32_PINMUX('B', 4, AF9)>; /* SDMMC2_D3 */
+       };
+};
+
+&sdmmc2_b4_pins_a {
+       pins1 {
+               pinmux = <STM32_PINMUX('B', 14, AF9)>, /* SDMMC2_D0 */
+                        <STM32_PINMUX('B', 7, AF10)>, /* SDMMC2_D1 */
+                        <STM32_PINMUX('B', 3, AF9)>, /* SDMMC2_D2 */
+                        <STM32_PINMUX('B', 4, AF9)>, /* SDMMC2_D3 */
+                        <STM32_PINMUX('G', 6, AF10)>; /* SDMMC2_CMD */
+       };
+};
+
+&sdmmc2_b4_sleep_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('B', 14, ANALOG)>, /* SDMMC2_D0 */
+                        <STM32_PINMUX('B', 7, ANALOG)>, /* SDMMC2_D1 */
+                        <STM32_PINMUX('B', 3, ANALOG)>, /* SDMMC2_D2 */
+                        <STM32_PINMUX('B', 4, ANALOG)>, /* SDMMC2_D3 */
+                        <STM32_PINMUX('E', 3, ANALOG)>, /* SDMMC2_CK */
+                        <STM32_PINMUX('G', 6, ANALOG)>; /* SDMMC2_CMD */
+       };
+};
+
+&sdmmc2_d47_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('A', 8, AF9)>, /* SDMMC2_D4 */
+                        <STM32_PINMUX('A', 9, AF10)>, /* SDMMC2_D5 */
+                        <STM32_PINMUX('C', 6, AF10)>, /* SDMMC2_D6 */
+                        <STM32_PINMUX('C', 7, AF10)>; /* SDMMC2_D7 */
+       };
+};
+
+&sdmmc2_d47_sleep_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('A', 8, ANALOG)>, /* SDMMC2_D4 */
+                        <STM32_PINMUX('A', 9, ANALOG)>, /* SDMMC2_D5 */
+                        <STM32_PINMUX('C', 6, ANALOG)>, /* SDMMC2_D6 */
+                        <STM32_PINMUX('D', 3, ANALOG)>; /* SDMMC2_D7 */
+       };
+};
+
+&sdmmc3 {
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc3_b4_pins_b>;
+       pinctrl-1 = <&sdmmc3_b4_od_pins_b>;
+       pinctrl-2 = <&sdmmc3_b4_sleep_pins_b>;
+       non-removable;
+       no-1-8-v;
+       st,neg-edge;
+       bus-width = <4>;
+       vmmc-supply = <&reg_3v3>;
+       vqmmc-supply = <&reg_3v3>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       mmc@1 {
+               compatible = "prt,prtt1c-wfm200", "silabs,wf200";
+               reg = <1>;
+       };
+};
+
+&sdmmc3_b4_od_pins_b {
+       pins1 {
+               pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
+                        <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
+                        <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
+                        <STM32_PINMUX('D', 7, AF10)>; /* SDMMC3_D3 */
+       };
+};
+
+&sdmmc3_b4_pins_b {
+       pins1 {
+               pinmux = <STM32_PINMUX('D', 1, AF10)>, /* SDMMC3_D0 */
+                        <STM32_PINMUX('D', 4, AF10)>, /* SDMMC3_D1 */
+                        <STM32_PINMUX('D', 5, AF10)>, /* SDMMC3_D2 */
+                        <STM32_PINMUX('D', 7, AF10)>, /* SDMMC3_D3 */
+                        <STM32_PINMUX('D', 0, AF10)>; /* SDMMC3_CMD */
+       };
+};
+
+&sdmmc3_b4_sleep_pins_b {
+       pins {
+               pinmux = <STM32_PINMUX('D', 1, ANALOG)>, /* SDMMC3_D0 */
+                        <STM32_PINMUX('D', 4, ANALOG)>, /* SDMMC3_D1 */
+                        <STM32_PINMUX('D', 5, ANALOG)>, /* SDMMC3_D2 */
+                        <STM32_PINMUX('D', 7, ANALOG)>, /* SDMMC3_D3 */
+                        <STM32_PINMUX('G', 15, ANALOG)>, /* SDMMC3_CK */
+                        <STM32_PINMUX('D', 0, ANALOG)>; /* SDMMC3_CMD */
+       };
+};
+
+&spi1 {
+       pinctrl-0 = <&spi1_pins_b>;
+       pinctrl-names = "default";
+       cs-gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       switch@0 {
+               compatible = "nxp,sja1105q";
+               reg = <0>;
+               spi-max-frequency = <4000000>;
+               spi-rx-delay-us = <1>;
+               spi-tx-delay-us = <1>;
+               spi-cpha;
+
+               reset-gpios = <&gpioe 6 GPIO_ACTIVE_LOW>;
+
+               clocks = <&clock_sja1105>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               label = "t1l0";
+                               phy-mode = "rmii";
+                               phy-handle = <&t1l0_phy>;
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               label = "t1l1";
+                               phy-mode = "rmii";
+                               phy-handle = <&t1l1_phy>;
+                       };
+
+                       port@2 {
+                               reg = <2>;
+                               label = "t1l2";
+                               phy-mode = "rmii";
+                               phy-handle = <&t1l2_phy>;
+                       };
+
+                       port@3 {
+                               reg = <3>;
+                               label = "rj45";
+                               phy-handle = <&rj45_phy>;
+                               phy-mode = "rgmii-id";
+                       };
+
+                       port@4 {
+                               reg = <4>;
+                               label = "cpu";
+                               ethernet = <&ethernet0>;
+                               phy-mode = "rmii";
+
+                               fixed-link {
+                                       speed = <100>;
+                                       full-duplex;
+                               };
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi b/arch/arm/boot/dts/stm32mp151a-prtt1l.dtsi
new file mode 100644 (file)
index 0000000..d865ab5
--- /dev/null
@@ -0,0 +1,229 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp151.dtsi"
+#include "stm32mp15-pinctrl.dtsi"
+#include "stm32mp15xxad-pinctrl.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       aliases {
+               ethernet0 = &ethernet0;
+               mdio-gpio0 = &mdio0;
+               serial0 = &uart4;
+       };
+
+       led-controller-0 {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_INDICATOR;
+                       gpios = <&gpioa 13 GPIO_ACTIVE_LOW>;
+               };
+
+               led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_INDICATOR;
+                       gpios = <&gpioa 14 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+
+       /* DP83TD510E PHYs have max MDC rate of 1.75MHz. Since we can't reduce
+        * stmmac MDC clock without reducing system bus rate, we need to use
+        * gpio based MDIO bus.
+        */
+       mdio0: mdio {
+               compatible = "virtual,mdio-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               gpios = <&gpioc 1 GPIO_ACTIVE_HIGH
+                        &gpioa 2 GPIO_ACTIVE_HIGH>;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&dts {
+       status = "okay";
+};
+
+&ethernet0 {
+       pinctrl-0 = <&ethernet0_rmii_pins_a>;
+       pinctrl-1 = <&ethernet0_rmii_sleep_pins_a>;
+       pinctrl-names = "default", "sleep";
+       phy-mode = "rmii";
+       status = "okay";
+};
+
+&ethernet0_rmii_pins_a {
+       pins1 {
+               pinmux = <STM32_PINMUX('B', 12, AF11)>, /* ETH1_RMII_TXD0 */
+                        <STM32_PINMUX('B', 13, AF11)>, /* ETH1_RMII_TXD1 */
+                        <STM32_PINMUX('B', 11, AF11)>; /* ETH1_RMII_TX_EN */
+       };
+       pins2 {
+               pinmux = <STM32_PINMUX('C', 4, AF11)>,  /* ETH1_RMII_RXD0 */
+                        <STM32_PINMUX('C', 5, AF11)>,  /* ETH1_RMII_RXD1 */
+                        <STM32_PINMUX('A', 1, AF11)>,  /* ETH1_RMII_REF_CLK input */
+                        <STM32_PINMUX('A', 7, AF11)>;  /* ETH1_RMII_CRS_DV */
+       };
+};
+
+&ethernet0_rmii_sleep_pins_a {
+       pins1 {
+               pinmux = <STM32_PINMUX('B', 12, ANALOG)>, /* ETH1_RMII_TXD0 */
+                        <STM32_PINMUX('B', 13, ANALOG)>, /* ETH1_RMII_TXD1 */
+                        <STM32_PINMUX('B', 11, ANALOG)>, /* ETH1_RMII_TX_EN */
+                        <STM32_PINMUX('C', 4, ANALOG)>,  /* ETH1_RMII_RXD0 */
+                        <STM32_PINMUX('C', 5, ANALOG)>,  /* ETH1_RMII_RXD1 */
+                        <STM32_PINMUX('A', 1, ANALOG)>,  /* ETH1_RMII_REF_CLK */
+                        <STM32_PINMUX('A', 7, ANALOG)>;  /* ETH1_RMII_CRS_DV */
+       };
+};
+
+&iwdg2 {
+       status = "okay";
+};
+
+&qspi {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&qspi_clk_pins_a &qspi_bk1_pins_a>;
+       pinctrl-1 = <&qspi_clk_sleep_pins_a &qspi_bk1_sleep_pins_a>;
+       reg = <0x58003000 0x1000>, <0x70000000 0x4000000>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "spi-nand";
+               reg = <0>;
+               spi-rx-bus-width = <4>;
+               spi-max-frequency = <104000000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+       };
+};
+
+&qspi_bk1_pins_a {
+       pins1 {
+               bias-pull-up;
+               drive-push-pull;
+               slew-rate = <1>;
+       };
+};
+
+&rng1 {
+       status = "okay";
+};
+
+&sdmmc1 {
+       pinctrl-names = "default", "opendrain", "sleep";
+       pinctrl-0 = <&sdmmc1_b4_pins_a>;
+       pinctrl-1 = <&sdmmc1_b4_od_pins_a>;
+       pinctrl-2 = <&sdmmc1_b4_sleep_pins_a>;
+       broken-cd;
+       st,neg-edge;
+       bus-width = <4>;
+       vmmc-supply = <&reg_3v3>;
+       vqmmc-supply = <&reg_3v3>;
+       status = "okay";
+};
+
+&sdmmc1_b4_od_pins_a {
+       pins1 {
+               bias-pull-up;
+       };
+       pins2 {
+               bias-pull-up;
+       };
+};
+
+&sdmmc1_b4_pins_a {
+       pins1 {
+               bias-pull-up;
+       };
+       pins2 {
+               bias-pull-up;
+       };
+};
+
+&uart4 {
+       pinctrl-names = "default", "sleep", "idle";
+       pinctrl-0 = <&uart4_pins_a>;
+       pinctrl-1 = <&uart4_sleep_pins_a>;
+       pinctrl-2 = <&uart4_idle_pins_a>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+};
+
+&uart4_idle_pins_a {
+       pins1 {
+               pinmux = <STM32_PINMUX('B', 9, ANALOG)>; /* UART4_TX */
+       };
+       pins2 {
+               pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+               bias-pull-up;
+       };
+};
+
+&uart4_pins_a {
+       pins1 {
+               pinmux = <STM32_PINMUX('B', 9, AF8)>; /* UART4_TX */
+               bias-disable;
+               drive-push-pull;
+               slew-rate = <0>;
+       };
+       pins2 {
+               pinmux = <STM32_PINMUX('B', 2, AF8)>; /* UART4_RX */
+               bias-pull-up;
+       };
+};
+
+&uart4_sleep_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('B', 9, ANALOG)>, /* UART4_TX */
+                       <STM32_PINMUX('B', 2, ANALOG)>; /* UART4_RX */
+       };
+};
+
+&usbh_ehci {
+       phys = <&usbphyc_port0>;
+       phy-names = "usb";
+       status = "okay";
+};
+
+&usbotg_hs {
+       dr_mode = "host";
+       pinctrl-0 = <&usbotg_hs_pins_a>;
+       pinctrl-names = "default";
+       phys = <&usbphyc_port1 0>;
+       phy-names = "usb2-phy";
+       status = "okay";
+};
+
+&usbphyc {
+       status = "okay";
+};
+
+&usbphyc_port0 {
+       phy-supply = <&reg_3v3>;
+};
+
+&usbphyc_port1 {
+       phy-supply = <&reg_3v3>;
+};
diff --git a/arch/arm/boot/dts/stm32mp151a-prtt1s.dts b/arch/arm/boot/dts/stm32mp151a-prtt1s.dts
new file mode 100644 (file)
index 0000000..ad25929
--- /dev/null
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) Protonic Holland
+ * Author: David Jander <david@protonic.nl>
+ */
+/dts-v1/;
+
+#include "stm32mp151a-prtt1l.dtsi"
+
+/ {
+       model = "Protonic PRTT1S";
+       compatible = "prt,prtt1s", "st,stm32mp151";
+};
+
+&ethernet0 {
+       phy-handle = <&phy0>;
+};
+
+&i2c1 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c1_pins_a>;
+       pinctrl-1 = <&i2c1_sleep_pins_a>;
+       clock-frequency = <100000>;
+       /delete-property/dmas;
+       /delete-property/dma-names;
+       status = "okay";
+
+       humidity-sensor@40 {
+               compatible = "ti,hdc1080";
+               reg = <0x40>;
+       };
+
+       co2-sensor@62 {
+               compatible = "sensirion,scd41";
+               reg = <0x62>;
+       };
+};
+
+&i2c1_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('D', 12, AF5)>, /* I2C1_SCL */
+                        <STM32_PINMUX('D', 13, AF5)>; /* I2C1_SDA */
+       };
+};
+
+&i2c1_sleep_pins_a {
+       pins {
+               pinmux = <STM32_PINMUX('D', 12, ANALOG)>, /* I2C1_SCL */
+                        <STM32_PINMUX('D', 13, ANALOG)>; /* I2C1_SDA */
+       };
+};
+
+&mdio0 {
+       /* TI DP83TD510E */
+       phy0: ethernet-phy@0 {
+               compatible = "ethernet-phy-id2000.0181";
+               reg = <0>;
+               interrupts-extended = <&gpioa 4 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&gpioa 3 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10>;
+               reset-deassert-us = <35>;
+       };
+};
diff --git a/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts b/arch/arm/boot/dts/stm32mp157a-dk1-scmi.dts
new file mode 100644 (file)
index 0000000..e3d3f3f
--- /dev/null
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2022 - All Rights Reserved
+ * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
+ */
+
+/dts-v1/;
+
+#include "stm32mp157a-dk1.dts"
+
+/ {
+       model = "STMicroelectronics STM32MP157A-DK1 SCMI Discovery Board";
+       compatible = "st,stm32mp157a-dk1-scmi", "st,stm32mp157a-dk1", "st,stm32mp157";
+
+       reserved-memory {
+               optee@de000000 {
+                       reg = <0xde000000 0x2000000>;
+                       no-map;
+               };
+       };
+};
+
+&cpu0 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cpu1 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&gpioz {
+       clocks = <&scmi_clk CK_SCMI_GPIOZ>;
+};
+
+&hash1 {
+       clocks = <&scmi_clk CK_SCMI_HASH1>;
+       resets = <&scmi_reset RST_SCMI_HASH1>;
+};
+
+&i2c4 {
+       clocks = <&scmi_clk CK_SCMI_I2C4>;
+       resets = <&scmi_reset RST_SCMI_I2C4>;
+};
+
+&iwdg2 {
+       clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
+};
+
+&mdma1 {
+       resets = <&scmi_reset RST_SCMI_MDMA>;
+};
+
+&mlahb {
+       resets = <&scmi_reset RST_SCMI_MCU>;
+};
+
+&optee {
+       status = "okay";
+};
+
+&rcc {
+       compatible = "st,stm32mp1-rcc-secure", "syscon";
+       clock-names = "hse", "hsi", "csi", "lse", "lsi";
+       clocks = <&scmi_clk CK_SCMI_HSE>,
+                <&scmi_clk CK_SCMI_HSI>,
+                <&scmi_clk CK_SCMI_CSI>,
+                <&scmi_clk CK_SCMI_LSE>,
+                <&scmi_clk CK_SCMI_LSI>;
+};
+
+&rng1 {
+       clocks = <&scmi_clk CK_SCMI_RNG1>;
+       resets = <&scmi_reset RST_SCMI_RNG1>;
+};
+
+&rtc {
+       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
+};
+
+&scmi {
+       status = "okay";
+};
+
+&scmi_shm {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts b/arch/arm/boot/dts/stm32mp157c-dk2-scmi.dts
new file mode 100644 (file)
index 0000000..45dcd29
--- /dev/null
@@ -0,0 +1,95 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2022 - All Rights Reserved
+ * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
+ */
+
+/dts-v1/;
+
+#include "stm32mp157c-dk2.dts"
+
+/ {
+       model = "STMicroelectronics STM32MP157C-DK2 SCMI Discovery Board";
+       compatible = "st,stm32mp157c-dk2-scmi", "st,stm32mp157c-dk2", "st,stm32mp157";
+
+       reserved-memory {
+               optee@de000000 {
+                       reg = <0xde000000 0x2000000>;
+                       no-map;
+               };
+       };
+};
+
+&cpu0 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cpu1 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cryp1 {
+       clocks = <&scmi_clk CK_SCMI_CRYP1>;
+       resets = <&scmi_reset RST_SCMI_CRYP1>;
+};
+
+&dsi {
+       clocks = <&rcc DSI_K>, <&scmi_clk CK_SCMI_HSE>, <&rcc DSI_PX>;
+};
+
+&gpioz {
+       clocks = <&scmi_clk CK_SCMI_GPIOZ>;
+};
+
+&hash1 {
+       clocks = <&scmi_clk CK_SCMI_HASH1>;
+       resets = <&scmi_reset RST_SCMI_HASH1>;
+};
+
+&i2c4 {
+       clocks = <&scmi_clk CK_SCMI_I2C4>;
+       resets = <&scmi_reset RST_SCMI_I2C4>;
+};
+
+&iwdg2 {
+       clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
+};
+
+&mdma1 {
+       resets = <&scmi_reset RST_SCMI_MDMA>;
+};
+
+&mlahb {
+       resets = <&scmi_reset RST_SCMI_MCU>;
+};
+
+&optee {
+       status = "okay";
+};
+
+&rcc {
+       compatible = "st,stm32mp1-rcc-secure", "syscon";
+       clock-names = "hse", "hsi", "csi", "lse", "lsi";
+       clocks = <&scmi_clk CK_SCMI_HSE>,
+                <&scmi_clk CK_SCMI_HSI>,
+                <&scmi_clk CK_SCMI_CSI>,
+                <&scmi_clk CK_SCMI_LSE>,
+                <&scmi_clk CK_SCMI_LSI>;
+};
+
+&rng1 {
+       clocks = <&scmi_clk CK_SCMI_RNG1>;
+       resets = <&scmi_reset RST_SCMI_RNG1>;
+};
+
+&rtc {
+       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
+};
+
+&scmi {
+       status = "okay";
+};
+
+&scmi_shm {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts b/arch/arm/boot/dts/stm32mp157c-ed1-scmi.dts
new file mode 100644 (file)
index 0000000..458e0ca
--- /dev/null
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2022 - All Rights Reserved
+ * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
+ */
+
+/dts-v1/;
+
+#include "stm32mp157c-ed1.dts"
+
+/ {
+       model = "STMicroelectronics STM32MP157C-ED1 SCMI eval daughter";
+       compatible = "st,stm32mp157c-ed1-scmi", "st,stm32mp157c-ed1", "st,stm32mp157";
+
+       reserved-memory {
+               optee@fe000000 {
+                       reg = <0xfe000000 0x2000000>;
+                       no-map;
+               };
+       };
+};
+
+&cpu0 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cpu1 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cryp1 {
+       clocks = <&scmi_clk CK_SCMI_CRYP1>;
+       resets = <&scmi_reset RST_SCMI_CRYP1>;
+};
+
+&gpioz {
+       clocks = <&scmi_clk CK_SCMI_GPIOZ>;
+};
+
+&hash1 {
+       clocks = <&scmi_clk CK_SCMI_HASH1>;
+       resets = <&scmi_reset RST_SCMI_HASH1>;
+};
+
+&i2c4 {
+       clocks = <&scmi_clk CK_SCMI_I2C4>;
+       resets = <&scmi_reset RST_SCMI_I2C4>;
+};
+
+&iwdg2 {
+       clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
+};
+
+&mdma1 {
+       resets = <&scmi_reset RST_SCMI_MDMA>;
+};
+
+&mlahb {
+       resets = <&scmi_reset RST_SCMI_MCU>;
+};
+
+&optee {
+       status = "okay";
+};
+
+&rcc {
+       compatible = "st,stm32mp1-rcc-secure", "syscon";
+       clock-names = "hse", "hsi", "csi", "lse", "lsi";
+       clocks = <&scmi_clk CK_SCMI_HSE>,
+                <&scmi_clk CK_SCMI_HSI>,
+                <&scmi_clk CK_SCMI_CSI>,
+                <&scmi_clk CK_SCMI_LSE>,
+                <&scmi_clk CK_SCMI_LSI>;
+};
+
+&rng1 {
+       clocks = <&scmi_clk CK_SCMI_RNG1>;
+       resets = <&scmi_reset RST_SCMI_RNG1>;
+};
+
+&rtc {
+       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
+};
+
+&scmi {
+       status = "okay";
+};
+
+&scmi_shm {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts b/arch/arm/boot/dts/stm32mp157c-ev1-scmi.dts
new file mode 100644 (file)
index 0000000..df9c113
--- /dev/null
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright (C) STMicroelectronics 2022 - All Rights Reserved
+ * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
+ */
+
+/dts-v1/;
+
+#include "stm32mp157c-ev1.dts"
+
+/ {
+       model = "STMicroelectronics STM32MP157C-EV1 SCMI eval daughter on eval mother";
+       compatible = "st,stm32mp157c-ev1-scmi", "st,stm32mp157c-ev1", "st,stm32mp157c-ed1",
+                    "st,stm32mp157";
+
+       reserved-memory {
+               optee@fe000000 {
+                       reg = <0xfe000000 0x2000000>;
+                       no-map;
+               };
+       };
+};
+
+&cpu0 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cpu1 {
+       clocks = <&scmi_clk CK_SCMI_MPU>;
+};
+
+&cryp1 {
+       clocks = <&scmi_clk CK_SCMI_CRYP1>;
+       resets = <&scmi_reset RST_SCMI_CRYP1>;
+};
+
+&dsi {
+       clocks = <&rcc DSI_K>, <&scmi_clk CK_SCMI_HSE>, <&rcc DSI_PX>;
+};
+
+&gpioz {
+       clocks = <&scmi_clk CK_SCMI_GPIOZ>;
+};
+
+&hash1 {
+       clocks = <&scmi_clk CK_SCMI_HASH1>;
+       resets = <&scmi_reset RST_SCMI_HASH1>;
+};
+
+&i2c4 {
+       clocks = <&scmi_clk CK_SCMI_I2C4>;
+       resets = <&scmi_reset RST_SCMI_I2C4>;
+};
+
+&iwdg2 {
+       clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
+};
+
+&m_can1 {
+       clocks = <&scmi_clk CK_SCMI_HSE>, <&rcc FDCAN_K>;
+};
+
+&mdma1 {
+       resets = <&scmi_reset RST_SCMI_MDMA>;
+};
+
+&mlahb {
+       resets = <&scmi_reset RST_SCMI_MCU>;
+};
+
+&optee {
+       status = "okay";
+};
+
+&rcc {
+       compatible = "st,stm32mp1-rcc-secure", "syscon";
+       clock-names = "hse", "hsi", "csi", "lse", "lsi";
+       clocks = <&scmi_clk CK_SCMI_HSE>,
+                <&scmi_clk CK_SCMI_HSI>,
+                <&scmi_clk CK_SCMI_CSI>,
+                <&scmi_clk CK_SCMI_LSE>,
+                <&scmi_clk CK_SCMI_LSI>;
+};
+
+&rng1 {
+       clocks = <&scmi_clk CK_SCMI_RNG1>;
+       resets = <&scmi_reset RST_SCMI_RNG1>;
+};
+
+&rtc {
+       clocks = <&scmi_clk CK_SCMI_RTCAPB>, <&scmi_clk CK_SCMI_RTC>;
+};
+
+&scmi {
+       status = "okay";
+};
+
+&scmi_shm {
+       status = "okay";
+};
index 83e2c87..238a611 100644 (file)
 
 &ethernet0 {
        status = "okay";
-       pinctrl-0 = <&ethernet0_rmii_pins_a>;
-       pinctrl-1 = <&ethernet0_rmii_sleep_pins_a>;
+       pinctrl-0 = <&ethernet0_rmii_pins_c &mco2_pins_a>;
+       pinctrl-1 = <&ethernet0_rmii_sleep_pins_c &mco2_sleep_pins_a>;
        pinctrl-names = "default", "sleep";
        phy-mode = "rmii";
        max-speed = <100>;
        phy-handle = <&phy0>;
-       st,eth-ref-clk-sel;
 
        mdio0 {
                #address-cells = <1>;
                        /* LAN8710Ai */
                        compatible = "ethernet-phy-id0007.c0f0",
                                     "ethernet-phy-ieee802.3-c22";
-                       clocks = <&rcc ETHCK_K>;
+                       clocks = <&rcc CK_MCO2>;
                        reset-gpios = <&gpioh 3 GPIO_ACTIVE_LOW>;
                        reset-assert-us = <500>;
                        reset-deassert-us = <500>;
        };
 };
 
+&rcc {
+       /* Connect MCO2 output to ETH_RX_CLK input via pad-pad connection */
+       clocks = <&rcc CK_MCO2>;
+       clock-names = "ETH_RX_CLK/ETH_REF_CLK";
+
+       /*
+        * Set PLL4P output to 100 MHz to supply SDMMC with faster clock,
+        * set MCO2 output to 50 MHz to supply ETHRX clock with PLL4P/2,
+        * so that MCO2 behaves as a divider for the ETHRX clock here.
+        */
+       assigned-clocks = <&rcc CK_MCO2>, <&rcc PLL4_P>;
+       assigned-clock-parents = <&rcc PLL4_P>;
+       assigned-clock-rates = <50000000>, <100000000>;
+};
+
 &rng1 {
        status = "okay";
 };
index 61e17f4..76c54b0 100644 (file)
                compatible = "snps,dwmac-mdio";
                reset-gpios = <&gpioz 2 GPIO_ACTIVE_LOW>;
                reset-delay-us = <1000>;
+               reset-post-delay-us = <1000>;
 
                phy0: ethernet-phy@7 {
                        reg = <7>;
index fc45d5a..a9f749f 100644 (file)
@@ -75,7 +75,6 @@
 
        r_gpio_keys {
                compatible = "gpio-keys";
-               input-name = "k1";
 
                k1 {
                        label = "k1";
index a1154e6..04e59b8 100644 (file)
        compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s";
 
        aliases {
+               mmc0 = &mmc0;
                serial0 = &uart0;
+               spi0 = &spi0;
        };
 
        chosen {
                stdout-path = "serial0:115200n8";
        };
+
+       reg_vcc3v3: vcc3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&mmc0 {
+       broken-cd;
+       bus-width = <4>;
+       disable-wp;
+       status = "okay";
+       vmmc-supply = <&reg_vcc3v3>;
+};
+
+&spi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0_pc_pins>;
+       status = "okay";
+
+       flash@0 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "winbond,w25q128", "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <40000000>;
+       };
 };
 
 &uart0 {
index 6100d3b..0edc172 100644 (file)
@@ -4,6 +4,9 @@
  * Copyright 2018 Mesih Kilinc <mesihkilinc@gmail.com>
  */
 
+#include <dt-bindings/clock/suniv-ccu-f1c100s.h>
+#include <dt-bindings/reset/suniv-ccu-f1c100s.h>
+
 / {
        #address-cells = <1>;
        #size-cells = <1>;
        };
 
        cpus {
-               cpu {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu@0 {
                        compatible = "arm,arm926ej-s";
                        device_type = "cpu";
+                       reg = <0x0>;
                };
        };
 
                        };
                };
 
+               spi0: spi@1c05000 {
+                       compatible = "allwinner,suniv-f1c100s-spi",
+                                    "allwinner,sun8i-h3-spi";
+                       reg = <0x01c05000 0x1000>;
+                       interrupts = <10>;
+                       clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>;
+                       clock-names = "ahb", "mod";
+                       resets = <&ccu RST_BUS_SPI0>;
+                       status = "disabled";
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               spi1: spi@1c06000 {
+                       compatible = "allwinner,suniv-f1c100s-spi",
+                                    "allwinner,sun8i-h3-spi";
+                       reg = <0x01c06000 0x1000>;
+                       interrupts = <11>;
+                       clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>;
+                       clock-names = "ahb", "mod";
+                       resets = <&ccu RST_BUS_SPI1>;
+                       status = "disabled";
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mmc0: mmc@1c0f000 {
+                       compatible = "allwinner,suniv-f1c100s-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 = <23>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&mmc0_pins>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               mmc1: mmc@1c10000 {
+                       compatible = "allwinner,suniv-f1c100s-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 = <24>;
+                       status = "disabled";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
                ccu: clock@1c20000 {
                        compatible = "allwinner,suniv-f1c100s-ccu";
                        reg = <0x01c20000 0x400>;
                        compatible = "allwinner,suniv-f1c100s-pinctrl";
                        reg = <0x01c20800 0x400>;
                        interrupts = <38>, <39>, <40>;
-                       clocks = <&ccu 37>, <&osc24M>, <&osc32k>;
+                       clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
                        clock-names = "apb", "hosc", "losc";
                        gpio-controller;
                        interrupt-controller;
                        #interrupt-cells = <3>;
                        #gpio-cells = <3>;
 
+                       mmc0_pins: mmc0-pins {
+                               pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
+                               function = "mmc0";
+                               drive-strength = <30>;
+                       };
+
+                       spi0_pc_pins: spi0-pc-pins {
+                               pins = "PC0", "PC1", "PC2", "PC3";
+                               function = "spi0";
+                       };
+
                        uart0_pe_pins: uart0-pe-pins {
                                pins = "PE0", "PE1";
                                function = "uart0";
                timer@1c20c00 {
                        compatible = "allwinner,suniv-f1c100s-timer";
                        reg = <0x01c20c00 0x90>;
-                       interrupts = <13>;
+                       interrupts = <13>, <14>, <15>;
                        clocks = <&osc24M>;
                };
 
                wdt: watchdog@1c20ca0 {
                        compatible = "allwinner,suniv-f1c100s-wdt",
-                                    "allwinner,sun4i-a10-wdt";
+                                    "allwinner,sun6i-a31-wdt";
                        reg = <0x01c20ca0 0x20>;
+                       interrupts = <16>;
+                       clocks = <&osc32k>;
                };
 
                uart0: serial@1c25000 {
                        interrupts = <1>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
-                       clocks = <&ccu 38>;
-                       resets = <&ccu 24>;
+                       clocks = <&ccu CLK_BUS_UART0>;
+                       resets = <&ccu RST_BUS_UART0>;
                        status = "disabled";
                };
 
                        interrupts = <2>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
-                       clocks = <&ccu 39>;
-                       resets = <&ccu 25>;
+                       clocks = <&ccu CLK_BUS_UART1>;
+                       resets = <&ccu RST_BUS_UART1>;
                        status = "disabled";
                };
 
                        interrupts = <3>;
                        reg-shift = <2>;
                        reg-io-width = <4>;
-                       clocks = <&ccu 40>;
-                       resets = <&ccu 26>;
+                       clocks = <&ccu CLK_BUS_UART2>;
+                       resets = <&ccu RST_BUS_UART2>;
                        status = "disabled";
                };
        };
index 47c2a4b..c193264 100644 (file)
                                     <0 40 4>, <0 41 4>,
                                     <0 42 4>, <0 43 4>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <4>;
                        clocks = <&clkc 27>;
                        clock-names = "apb_pclk";
                };
index ec7e2c0..bfb806c 100644 (file)
        };
 };
 
+&codec {
+       status = "okay";
+};
+
+&codec_analog {
+       cpvdd-supply = <&reg_eldo1>;
+       status = "okay";
+};
+
 &cpu0 {
        cpu-supply = <&reg_dcdc2>;
 };
        cpu-supply = <&reg_dcdc2>;
 };
 
+&dai {
+       status = "okay";
+};
+
 &de {
        status = "okay";
 };
        vcc-hdmi-supply = <&reg_dldo1>;
 };
 
+&sound {
+       simple-audio-card,aux-devs = <&codec_analog>;
+       simple-audio-card,widgets = "Microphone", "Microphone Jack Left",
+                   "Microphone", "Microphone Jack Right",
+                   "Headphone", "Headphone Jack";
+       simple-audio-card,routing = "Left DAC", "DACL",
+                   "Right DAC", "DACR",
+                   "Headphone Jack", "HP",
+                   "ADCL", "Left ADC",
+                   "ADCR", "Right ADC",
+                   "Microphone Jack Left", "MBIAS",
+                   "MIC1", "Microphone Jack Left",
+                   "Microphone Jack Right", "MBIAS",
+                   "MIC2", "Microphone Jack Right";
+       status = "okay";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_pb_pins>;
index aff0660..1128030 100644 (file)
        status = "okay";
 };
 
+&pio {
+       vcc-pc-supply = <&reg_dcdc1>;
+       vcc-pd-supply = <&reg_dldo2>;
+       vcc-pe-supply = <&reg_aldo1>;
+       vcc-pf-supply = <&reg_dcdc1>;  /* No dedicated supply-pin for this */
+       vcc-pg-supply = <&reg_aldo2>;
+};
+
 &pwm {
        status = "okay";
 };
index 884bda1..aa2bba7 100644 (file)
                                     <0 88 4>,
                                     <0 89 4>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        clocks = <&clkmgr STRATIX10_L4_MAIN_CLK>;
                        clock-names = "apb_pclk";
                        resets = <&rst DMA_RESET>, <&rst DMA_OCP_RESET>;
index 0eec186..8773211 100644 (file)
@@ -1,17 +1,18 @@
 # SPDX-License-Identifier: GPL-2.0
-dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-axg-jethome-jethub-j100.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-axg-s400.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-radxa-zero.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-sei510.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-u200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12a-x96-max.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gsking-x.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking-pro.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-a311d-khadas-vim3.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-gtking.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2-plus.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-odroid-n2.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-g12b-s922x-khadas-vim3.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-g12b-ugoos-am6.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-kii-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nanopi-k2.dtb
@@ -19,29 +20,29 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-nexbox-a95x.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-odroidc2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p200.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-p201.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-meta.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-vega-s95-telos.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-hub.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxbb-wetek-play2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-libretech-ac.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-mecool-kii-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p230.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-p231.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-phicomm-n1.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-sml5442tw.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-vero4k-plus.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s805x-p241.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-p281.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-tx3-mini.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905d-libretech-pc.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905w-jethome-jethub-j80.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-hwacom-amazetv.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-khadas-vim.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc-v2.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-libretech-cc.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-nexbox-a95x.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-gxl-s905x-p212.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-khadas-vim2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-mecool-kiii-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-minix-neo-u9h.dtb
@@ -52,15 +53,14 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-rbox-pro.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-s912-libretech-pc.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m5.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-h96-max.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-khadas-vim3l.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-c4.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-odroid-hc4.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-sei610.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air-gbit.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-a1-ad401.dtb
-dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-sm1-x96-air.dtb
index 561eec2..8b0d586 100644 (file)
@@ -18,7 +18,7 @@
        model = "JetHome JetHub J100";
        aliases {
                serial0 = &uart_AO;   /* Console */
-               serial1 = &uart_AO_B; /* External UART (Wireless Module) */
+               serial2 = &uart_AO_B; /* External UART (Wireless Module) */
                ethernet0 = &ethmac;
        };
 
        vddio_boot: regulator-vddio_boot {
                compatible = "regulator-fixed";
                regulator-name = "VDDIO_BOOT";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-always-on;
+       };
+
+       vccq_1v8: regulator-vccq_1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCCQ_1V8";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                vin-supply = <&vddao_3v3>;
 
        bus-width = <4>;
        cap-sd-highspeed;
-       sd-uhs-sdr104;
-       max-frequency = <200000000>;
+       max-frequency = <50000000>;
        non-removable;
        disable-wp;
 
        mmc-pwrseq = <&emmc_pwrseq>;
 
        vmmc-supply = <&vcc_3v3>;
-       vqmmc-supply = <&vddio_boot>;
+       vqmmc-supply = <&vccq_1v8>;
 };
 
 /* UART Bluetooth */
index 2d7032f..bcdf55f 100644 (file)
        pinctrl-names = "default";
        status = "okay";
 
-       gd25lq128: spi-flash@0 {
+       gd25lq128: flash@0 {
                compatible = "jedec,spi-nor";
                #address-cells = <1>;
                #size-cells = <1>;
index 2d76920..213a070 100644 (file)
        pinctrl-0 = <&nor_pins>;
        pinctrl-names = "default";
 
-       w25q32: spi-flash@0 {
+       w25q32: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 6eafb90..fcb304c 100644 (file)
        pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
        pinctrl-names = "default";
        uart-has-rtscts;
+
+       bluetooth {
+               compatible = "realtek,rtl8822cs-bt";
+               enable-gpios  = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio GPIOX_18 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &uart_C {
index 93d8f8a..874f91c 100644 (file)
        pinctrl-0 = <&nor_pins>;
        pinctrl-names = "default";
 
-       nor_4u1: spi-flash@0 {
+       nor_4u1: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 86bdc0b..f43c45d 100644 (file)
        pinctrl-0 = <&nor_pins>;
        pinctrl-names = "default";
 
-       w25q32: spi-flash@0 {
+       w25q32: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "winbond,w25q16", "jedec,spi-nor";
index 3cf4ecb..c970594 100644 (file)
        pinctrl-0 = <&nor_pins>;
        pinctrl-names = "default";
 
-       w25q128: spi-flash@0 {
+       w25q128: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "winbond,w25q128fw", "jedec,spi-nor";
index 480afa2..ff21361 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        cpus {
                #clock-cells = <0>;
        };
 
+       pwrc: power-controller {
+               compatible = "amlogic,meson-s4-pwrc";
+               #power-domain-cells = <1>;
+               status = "okay";
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                        #size-cells = <2>;
                        ranges = <0x0 0x0 0x0 0xfe000000 0x0 0x480000>;
 
+                       periphs_pinctrl: pinctrl@4000 {
+                               compatible = "amlogic,meson-s4-periphs-pinctrl";
+                               #address-cells = <2>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               gpio: bank@4000 {
+                                       reg = <0x0 0x4000 0x0 0x004c>,
+                                             <0x0 0x40c0 0x0 0x0220>;
+                                       reg-names = "mux", "gpio";
+                                       gpio-controller;
+                                       #gpio-cells = <2>;
+                                       gpio-ranges = <&periphs_pinctrl 0 0 82>;
+                               };
+                       };
+
+                       gpio_intc: interrupt-controller@4080 {
+                               compatible = "amlogic,meson-s4-gpio-intc",
+                                            "amlogic,meson-gpio-intc";
+                               reg = <0x0 0x4080 0x0 0x20>;
+                               interrupt-controller;
+                               #interrupt-cells = <2>;
+                               amlogic,channel-interrupts =
+                                       <10 11 12 13 14 15 16 17 18 19 20 21>;
+                       };
+
                        uart_B: serial@7a000 {
                                compatible = "amlogic,meson-s4-uart",
                                             "amlogic,meson-ao-uart";
index f3f9532..e3486f6 100644 (file)
        pinctrl-0 = <&nor_pins>;
        pinctrl-names = "default";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 4382b73..d908e96 100644 (file)
@@ -6,3 +6,4 @@ dtb-$(CONFIG_ARCH_VEXPRESS) += juno.dtb juno-r1.dtb juno-r2.dtb juno-scmi.dtb ju
 dtb-$(CONFIG_ARCH_VEXPRESS) += rtsm_ve-aemv8a.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += vexpress-v2f-1xv7-ca53x2.dtb
 dtb-$(CONFIG_ARCH_VEXPRESS) += fvp-base-revc.dtb
+dtb-$(CONFIG_ARCH_VEXPRESS) += corstone1000-fvp.dtb corstone1000-mps3.dtb
diff --git a/arch/arm64/boot/dts/arm/corstone1000-fvp.dts b/arch/arm64/boot/dts/arm/corstone1000-fvp.dts
new file mode 100644 (file)
index 0000000..26b0f1b
--- /dev/null
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0 or MIT
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2022, Linaro Limited. All rights reserved.
+ *
+ */
+
+/dts-v1/;
+
+#include "corstone1000.dtsi"
+
+/ {
+       model = "ARM Corstone1000 FVP (Fixed Virtual Platform)";
+       compatible = "arm,corstone1000-fvp";
+
+       smsc: ethernet@4010000 {
+               compatible = "smsc,lan91c111";
+               reg = <0x40100000 0x10000>;
+               phy-mode = "mii";
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+               reg-io-width = <2>;
+       };
+
+       vmmc_v3_3d: fixed_v3_3d {
+               compatible = "regulator-fixed";
+               regulator-name = "vmmc_supply";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       sdmmc0: mmc@40300000 {
+               compatible = "arm,pl18x", "arm,primecell";
+               reg = <0x40300000 0x1000>;
+               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+               max-frequency = <12000000>;
+               vmmc-supply = <&vmmc_v3_3d>;
+               clocks = <&smbclk>, <&refclk100mhz>;
+               clock-names = "smclk", "apb_pclk";
+       };
+
+       sdmmc1: mmc@50000000 {
+               compatible = "arm,pl18x", "arm,primecell";
+               reg = <0x50000000 0x10000>;
+               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+               max-frequency = <12000000>;
+               vmmc-supply = <&vmmc_v3_3d>;
+               clocks = <&smbclk>, <&refclk100mhz>;
+               clock-names = "smclk", "apb_pclk";
+       };
+};
diff --git a/arch/arm64/boot/dts/arm/corstone1000-mps3.dts b/arch/arm64/boot/dts/arm/corstone1000-mps3.dts
new file mode 100644 (file)
index 0000000..e314674
--- /dev/null
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-2.0 or MIT
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2022, Linaro Limited. All rights reserved.
+ *
+ */
+
+/dts-v1/;
+
+#include "corstone1000.dtsi"
+
+/ {
+       model = "ARM Corstone1000 FPGA MPS3 board";
+       compatible = "arm,corstone1000-mps3";
+
+       smsc: ethernet@4010000 {
+               compatible = "smsc,lan9220", "smsc,lan9115";
+               reg = <0x40100000 0x10000>;
+               phy-mode = "mii";
+               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+               reg-io-width = <2>;
+               smsc,irq-push-pull;
+       };
+
+       usb_host: usb@40200000 {
+               compatible = "nxp,usb-isp1763";
+               reg = <0x40200000 0x100000>;
+               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+               bus-width = <16>;
+               dr_mode = "host";
+       };
+};
diff --git a/arch/arm64/boot/dts/arm/corstone1000.dtsi b/arch/arm64/boot/dts/arm/corstone1000.dtsi
new file mode 100644 (file)
index 0000000..4e46826
--- /dev/null
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: GPL-2.0 or MIT
+/*
+ * Copyright (c) 2022, Arm Limited. All rights reserved.
+ * Copyright (c) 2022, Linaro Limited. All rights reserved.
+ *
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       interrupt-parent = <&gic>;
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       aliases {
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a35";
+                       reg = <0>;
+                       next-level-cache = <&L2_0>;
+               };
+       };
+
+       memory@88200000 {
+               device_type = "memory";
+               reg = <0x88200000 0x77e00000>;
+       };
+
+       gic: interrupt-controller@1c000000 {
+               compatible = "arm,gic-400";
+               #interrupt-cells = <3>;
+               #address-cells = <0>;
+               interrupt-controller;
+               reg =   <0x1c010000 0x1000>,
+                       <0x1c02f000 0x2000>,
+                       <0x1c04f000 0x1000>,
+                       <0x1c06f000 0x2000>;
+               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) |
+                             IRQ_TYPE_LEVEL_LOW)>;
+       };
+
+       L2_0: l2-cache0 {
+               compatible = "cache";
+               cache-level = <2>;
+               cache-size = <0x80000>;
+               cache-line-size = <64>;
+               cache-sets = <1024>;
+       };
+
+       refclk100mhz: refclk100mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+               clock-output-names = "apb_pclk";
+       };
+
+       smbclk: refclk24mhzx2 {
+               /* Reference 24MHz clock x 2 */
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <48000000>;
+               clock-output-names = "smclk";
+       };
+
+       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)>;
+       };
+
+       uartclk: uartclk {
+               /* UART clock - 50MHz */
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <50000000>;
+               clock-output-names = "uartclk";
+       };
+
+       psci {
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+               method = "smc";
+       };
+
+       soc {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               interrupt-parent = <&gic>;
+               ranges;
+
+               timer@1a220000 {
+                       compatible = "arm,armv7-timer-mem";
+                       reg = <0x1a220000 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clock-frequency = <50000000>;
+                       ranges;
+
+                       frame@1a230000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x1a230000 0x1000>;
+                       };
+               };
+
+               uart0: serial@1a510000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x1a510000 0x1000>;
+                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&refclk100mhz>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               uart1: serial@1a520000 {
+                       compatible = "arm,pl011", "arm,primecell";
+                       reg = <0x1a520000 0x1000>;
+                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&uartclk>, <&refclk100mhz>;
+                       clock-names = "uartclk", "apb_pclk";
+               };
+
+               mhu_hse1: mailbox@1b820000 {
+                       compatible = "arm,mhuv2-tx", "arm,primecell";
+                       reg = <0x1b820000 0x1000>;
+                       clocks = <&refclk100mhz>;
+                       clock-names = "apb_pclk";
+                       interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       arm,mhuv2-protocols = <0 0>;
+                       secure-status = "okay";     /* secure-world-only */
+                       status = "disabled";
+               };
+
+               mhu_seh1: mailbox@1b830000 {
+                       compatible = "arm,mhuv2-rx", "arm,primecell";
+                       reg = <0x1b830000 0x1000>;
+                       clocks = <&refclk100mhz>;
+                       clock-names = "apb_pclk";
+                       interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+                       #mbox-cells = <2>;
+                       arm,mhuv2-protocols = <0 0>;
+                       secure-status = "okay";     /* secure-world-only */
+                       status = "disabled";
+               };
+       };
+};
index fbf13f7..83e3e7e 100644 (file)
                                clock-names = "uartclk", "apb_pclk";
                        };
 
-                       virtio-block@130000 {
+                       virtio@130000 {
                                compatible = "virtio,mmio";
                                reg = <0x130000 0x200>;
                                interrupts = <42>;
index 269b649..a496e39 100644 (file)
                                <0 0 41 &gic 0 0 GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
                                <0 0 42 &gic 0 0 GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
                                <0 0 43 &gic 0 0 GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
-                               <0 0 44 &gic 0 0 GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
+                               <0 0 44 &gic 0 0 GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+                               <0 0 46 &gic 0 0 GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
        };
 };
index 446c8f4..065381c 100644 (file)
         * The actual size is just 4K though 64K is reserved. Access to the
         * unmapped reserved region results in a DECERR response.
         */
-       etf@20010000 { /* etf0 */
+       etf_sys0: etf@20010000 { /* etf0 */
                compatible = "arm,coresight-tmc", "arm,primecell";
                reg = <0 0x20010000 0 0x1000>;
 
                };
        };
 
-       tpiu@20030000 {
+       tpiu_sys: tpiu@20030000 {
                compatible = "arm,coresight-tpiu", "arm,primecell";
                reg = <0 0x20030000 0 0x1000>;
 
                };
        };
 
-       etr@20070000 {
+       etr_sys: etr@20070000 {
                compatible = "arm,coresight-tmc", "arm,primecell";
                reg = <0 0x20070000 0 0x1000>;
                iommus = <&smmu_etr 0>;
                };
        };
 
-       stm@20100000 {
+       stm_sys: stm@20100000 {
                compatible = "arm,coresight-stm", "arm,primecell";
                reg = <0 0x20100000 0 0x1000>,
                      <0 0x28000000 0 0x1000000>;
                };
        };
 
+       cti0: cti@22020000 {
+               compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
+                            "arm,primecell";
+               reg = <0 0x22020000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               arm,cs-dev-assoc = <&etm0>;
+       };
+
        funnel@220c0000 { /* cluster0 funnel */
                compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                reg = <0 0x220c0000 0 0x1000>;
                };
        };
 
+       cti1: cti@22120000 {
+               compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
+                            "arm,primecell";
+               reg = <0 0x22120000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               arm,cs-dev-assoc = <&etm1>;
+       };
+
        cpu_debug2: cpu-debug@23010000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23010000 0x0 0x1000>;
                };
        };
 
+       cti2: cti@23020000 {
+               compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
+                            "arm,primecell";
+               reg = <0 0x23020000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               arm,cs-dev-assoc = <&etm2>;
+       };
+
        funnel@230c0000 { /* cluster1 funnel */
                compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                reg = <0 0x230c0000 0 0x1000>;
                };
        };
 
+       cti3: cti@23120000 {
+               compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
+                            "arm,primecell";
+               reg = <0 0x23120000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               arm,cs-dev-assoc = <&etm3>;
+       };
+
        cpu_debug4: cpu-debug@23210000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23210000 0x0 0x1000>;
                };
        };
 
+       cti4: cti@23220000 {
+               compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
+                            "arm,primecell";
+               reg = <0 0x23220000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               arm,cs-dev-assoc = <&etm4>;
+       };
+
        cpu_debug5: cpu-debug@23310000 {
                compatible = "arm,coresight-cpu-debug", "arm,primecell";
                reg = <0x0 0x23310000 0x0 0x1000>;
                };
        };
 
+       cti5: cti@23320000 {
+               compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
+                            "arm,primecell";
+               reg = <0 0x23320000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               arm,cs-dev-assoc = <&etm5>;
+       };
+
+       cti_sys0: cti@20020000 { /* sys_cti_0 */
+               compatible = "arm,coresight-cti", "arm,primecell";
+               reg = <0 0x20020000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               trig-conns@0 {
+                       reg = <0>;
+                       arm,trig-in-sigs=<2 3>;
+                       arm,trig-in-types=<SNK_FULL SNK_ACQCOMP>;
+                       arm,trig-out-sigs=<0 1>;
+                       arm,trig-out-types=<SNK_FLUSHIN SNK_TRIGIN>;
+                       arm,cs-dev-assoc = <&etr_sys>;
+               };
+
+               trig-conns@1 {
+                       reg = <1>;
+                       arm,trig-in-sigs=<0 1>;
+                       arm,trig-in-types=<SNK_FULL SNK_ACQCOMP>;
+                       arm,trig-out-sigs=<7 6>;
+                       arm,trig-out-types=<SNK_FLUSHIN SNK_TRIGIN>;
+                       arm,cs-dev-assoc = <&etf_sys0>;
+               };
+
+               trig-conns@2 {
+                       reg = <2>;
+                       arm,trig-in-sigs=<4 5 6 7>;
+                       arm,trig-in-types=<STM_TOUT_SPTE STM_TOUT_SW
+                                          STM_TOUT_HETE STM_ASYNCOUT>;
+                       arm,trig-out-sigs=<4 5>;
+                       arm,trig-out-types=<STM_HWEVENT STM_HWEVENT>;
+                       arm,cs-dev-assoc = <&stm_sys>;
+               };
+
+               trig-conns@3 {
+                       reg = <3>;
+                       arm,trig-out-sigs=<2 3>;
+                       arm,trig-out-types=<SNK_FLUSHIN SNK_TRIGIN>;
+                       arm,cs-dev-assoc = <&tpiu_sys>;
+               };
+       };
+
+       cti_sys1: cti@20110000 { /* sys_cti_1 */
+               compatible = "arm,coresight-cti", "arm,primecell";
+               reg = <0 0x20110000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               trig-conns@0 {
+                       reg = <0>;
+                       arm,trig-in-sigs=<0>;
+                       arm,trig-in-types=<GEN_INTREQ>;
+                       arm,trig-out-sigs=<0>;
+                       arm,trig-out-types=<GEN_HALTREQ>;
+                       arm,trig-conn-name = "sys_profiler";
+               };
+
+               trig-conns@1 {
+                       reg = <1>;
+                       arm,trig-out-sigs=<2 3>;
+                       arm,trig-out-types=<GEN_HALTREQ GEN_RESTARTREQ>;
+                       arm,trig-conn-name = "watchdog";
+               };
+
+               trig-conns@2 {
+                       reg = <2>;
+                       arm,trig-out-sigs=<1 6>;
+                       arm,trig-out-types=<GEN_HALTREQ GEN_RESTARTREQ>;
+                       arm,trig-conn-name = "g_counter";
+               };
+       };
+
        gpu: gpu@2d000000 {
                compatible = "arm,juno-mali", "arm,mali-t624";
                reg = <0 0x2d000000 0 0x10000>;
                compatible = "arm,pl330", "arm,primecell";
                reg = <0x0 0x7ff00000 0 0x1000>;
                #dma-cells = <1>;
-               #dma-channels = <8>;
-               #dma-requests = <32>;
                interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
index eda3d9e..2e43f45 100644 (file)
@@ -23,7 +23,7 @@
                };
        };
 
-       etf@20140000 { /* etf1 */
+       etf_sys1: etf@20140000 { /* etf1 */
                compatible = "arm,coresight-tmc", "arm,primecell";
                reg = <0 0x20140000 0 0x1000>;
 
 
                };
        };
+
+       cti_sys2: cti@20160000 { /* sys_cti_2 */
+               compatible = "arm,coresight-cti", "arm,primecell";
+               reg = <0 0x20160000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               trig-conns@0 {
+                       reg = <0>;
+                       arm,trig-in-sigs=<0 1>;
+                       arm,trig-in-types=<SNK_FULL SNK_ACQCOMP>;
+                       arm,trig-out-sigs=<0 1>;
+                       arm,trig-out-types=<SNK_FLUSHIN SNK_TRIGIN>;
+                       arm,cs-dev-assoc = <&etf_sys1>;
+               };
+
+               trig-conns@1 {
+                       reg = <1>;
+                       arm,trig-in-sigs=<2 3 4>;
+                       arm,trig-in-types=<ELA_DBGREQ ELA_TSTART ELA_TSTOP>;
+                       arm,trig-conn-name = "ela_clus_0";
+               };
+
+               trig-conns@2 {
+                       reg = <2>;
+                       arm,trig-in-sigs=<5 6 7>;
+                       arm,trig-in-types=<ELA_DBGREQ ELA_TSTART ELA_TSTOP>;
+                       arm,trig-conn-name = "ela_clus_1";
+               };
+       };
 };
index 190a0fb..dd9ea69 100644 (file)
@@ -7,14 +7,18 @@
        };
 
        etf@20140000 {
-               power-domains = <&scmi_devpd 0>;
+               power-domains = <&scmi_devpd 8>;
        };
 
        funnel@20150000 {
-               power-domains = <&scmi_devpd 0>;
+               power-domains = <&scmi_devpd 8>;
        };
 };
 
+&cti_sys2 {
+       power-domains = <&scmi_devpd 8>;
+};
+
 &A57_0 {
        clocks = <&scmi_dvfs 0>;
 };
index 0e24e29..f099fb6 100644 (file)
@@ -9,6 +9,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/arm/coresight-cti-dt.h>
 #include "juno-base.dtsi"
 #include "juno-cs-r1r2.dtsi"
 
 &cpu_debug5 {
        cpu = <&A53_3>;
 };
+
+&cti0 {
+       cpu = <&A57_0>;
+};
+
+&cti1 {
+       cpu = <&A57_1>;
+};
+
+&cti2 {
+       cpu = <&A53_0>;
+};
+
+&cti3 {
+       cpu = <&A53_1>;
+};
+
+&cti4 {
+       cpu = <&A53_2>;
+};
+
+&cti5 {
+       cpu = <&A53_3>;
+};
index dbf1377..de2cbac 100644 (file)
@@ -7,14 +7,18 @@
        };
 
        etf@20140000 {
-               power-domains = <&scmi_devpd 0>;
+               power-domains = <&scmi_devpd 8>;
        };
 
        funnel@20150000 {
-               power-domains = <&scmi_devpd 0>;
+               power-domains = <&scmi_devpd 8>;
        };
 };
 
+&cti_sys2 {
+       power-domains = <&scmi_devpd 8>;
+};
+
 &A72_0 {
        clocks = <&scmi_dvfs 0>;
 };
index e609420..7093895 100644 (file)
@@ -9,6 +9,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/arm/coresight-cti-dt.h>
 #include "juno-base.dtsi"
 #include "juno-cs-r1r2.dtsi"
 
 &cpu_debug5 {
        cpu = <&A53_3>;
 };
+
+&cti0 {
+       cpu = <&A72_0>;
+};
+
+&cti1 {
+       cpu = <&A72_1>;
+};
+
+&cti2 {
+       cpu = <&A53_0>;
+};
+
+&cti3 {
+       cpu = <&A53_1>;
+};
+
+&cti4 {
+       cpu = <&A53_2>;
+};
+
+&cti5 {
+       cpu = <&A53_3>;
+};
index d72dcff..4135d62 100644 (file)
        power-domains = <&scmi_devpd 8>;
 };
 
+&cti0 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti1 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti2 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti3 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti4 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti5 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti_sys0 {
+       power-domains = <&scmi_devpd 8>;
+};
+&cti_sys1 {
+       power-domains = <&scmi_devpd 8>;
+};
+
 &gpu {
        clocks = <&scmi_dvfs 2>;
        power-domains = <&scmi_devpd 9>;
index f00cffb..dbc22e7 100644 (file)
@@ -9,6 +9,7 @@
 /dts-v1/;
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/arm/coresight-cti-dt.h>
 #include "juno-base.dtsi"
 
 / {
 &cpu_debug5 {
        cpu = <&A53_3>;
 };
+
+&cti0 {
+       cpu = <&A57_0>;
+};
+
+&cti1 {
+       cpu = <&A57_1>;
+};
+
+&cti2 {
+       cpu = <&A53_0>;
+};
+
+&cti3 {
+       cpu = <&A53_1>;
+};
+
+&cti4 {
+       cpu = <&A53_2>;
+};
+
+&cti5 {
+       cpu = <&A53_3>;
+};
index 33182d9..ec2d528 100644 (file)
                        arm,v2m-memory-map = "rs2";
 
                        iofpga-bus@300000000 {
-                               virtio-p9@140000 {
+                               virtio@140000 {
                                        compatible = "virtio,mmio";
                                        reg = <0x140000 0x200>;
                                        interrupts = <43>;
                                };
 
-                               virtio-net@150000 {
+                               virtio@150000 {
                                        compatible = "virtio,mmio";
                                        reg = <0x150000 0x200>;
                                        interrupts = <44>;
                                };
+
+                               virtio@200000 {
+                                       compatible = "virtio,mmio";
+                                       reg = <0x200000 0x200>;
+                                       interrupts = <46>;
+                                       status = "disabled";
+                               };
                        };
                };
        };
index 5f6cab6..ba8beef 100644 (file)
                                compatible = "simple-bus";
                                #address-cells = <1>;
                                #size-cells = <1>;
-                               ranges = <0 3 0 0x200000>;
+                               ranges = <0 3 0 0x210000>;
 
                                v2m_sysreg: sysreg@10000 {
                                        compatible = "arm,vexpress-sysreg";
                                        clock-names = "timclken1", "timclken2", "apb_pclk";
                                };
 
-                               virtio-block@130000 {
+                               virtio@130000 {
                                        compatible = "virtio,mmio";
                                        reg = <0x130000 0x200>;
                                        interrupts = <42>;
index 12a4b1c..e34172e 100644 (file)
 
 &qspi {
        bspi-sel = <0>;
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index f00c21e..7bf26f3 100644 (file)
 };
 
 &qspi {
-       flash: m25p80@0 {
+       flash: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "m25p80";
index f59fa39..fda97c4 100644 (file)
                                     <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";
                };
index 77efa28..dfac910 100644 (file)
@@ -61,7 +61,7 @@
        cs-gpios = <&gpio_hsls 34 0>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <20000000>;
@@ -76,7 +76,7 @@
        cs-gpios = <&gpio_hsls 96 0>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <20000000>;
index 7f1b8ef..09d4aa8 100644 (file)
                                     <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        clocks = <&hsls_div2_clk>;
                        clock-names = "apb_pclk";
                        iommus = <&smmu 0x6000 0x0000>;
index 661567d..75b548e 100644 (file)
                };
 
                timer@101c0000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "samsung,exynos5433-mct",
+                                    "samsung,exynos4210-mct";
                        reg = <0x101c0000 0x800>;
                        interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
                                <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
                        clocks = <&cmu_fsys CLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@15600000 {
                        clocks = <&cmu_fsys CLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                audio-subsystem@11400000 {
                                clocks = <&cmu_aud CLK_ACLK_DMAC>;
                                clock-names = "apb_pclk";
                                #dma-cells = <1>;
-                               #dma-channels = <8>;
-                               #dma-requests = <32>;
                                power-domains = <&pd_aud>;
                        };
 
index e38bb02..1cd771c 100644 (file)
                        clocks = <&clock_fsys0 ACLK_PDMA0>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                pdma1: dma-controller@10eb0000 {
                        clocks = <&clock_fsys0 ACLK_PDMA1>;
                        clock-names = "apb_pclk";
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                };
 
                clock_topc: clock-controller@10570000 {
index 7b5a61d..f52a55f 100644 (file)
        model = "WinLink E850-96 board";
        compatible = "winlink,e850-96", "samsung,exynos850";
 
+       aliases {
+               mmc0 = &mmc_0;
+               serial0 = &serial_0;
+       };
+
        chosen {
                stdout-path = &serial_0;
        };
index d1700e9..9076afd 100644 (file)
                pinctrl3 = &pinctrl_hsi;
                pinctrl4 = &pinctrl_core;
                pinctrl5 = &pinctrl_peri;
-               mmc0 = &mmc_0;
-               serial0 = &serial_0;
-               serial1 = &serial_1;
-               serial2 = &serial_2;
-               i2c0 = &i2c_0;
-               i2c1 = &i2c_1;
-               i2c2 = &i2c_2;
-               i2c3 = &i2c_3;
-               i2c4 = &i2c_4;
-               i2c5 = &i2c_5;
-               i2c6 = &i2c_6;
-               i2c7 = &hsi2c_0;
-               i2c8 = &hsi2c_1;
-               i2c9 = &hsi2c_2;
-               i2c10 = &hsi2c_3;
-               i2c11 = &hsi2c_4;
        };
 
        arm-pmu {
                };
 
                timer@10040000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "samsung,exynos850-mct",
+                                    "samsung,exynos4210-mct";
                        reg = <0x10040000 0x800>;
                        interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
index 57518cb..17e5688 100644 (file)
@@ -58,3 +58,7 @@
 &usi_0 {
        status = "okay";
 };
+
+&xtcxo {
+       clock-frequency = <26000000>;
+};
index 807d500..0ce46ec 100644 (file)
@@ -6,6 +6,7 @@
  *
  */
 
+#include <dt-bindings/clock/samsung,exynosautov9.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/soc/samsung,exynos-usi.h>
 
                xtcxo: clock {
                        compatible = "fixed-clock";
                        #clock-cells = <0>;
-                       clock-frequency = <26000000>;
                        clock-output-names = "oscclk";
                };
-
-               /*
-                * Keep the stub clock for serial driver, until proper clock
-                * driver is implemented.
-                */
-               uart_clock: uart-clock {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <133250000>;
-                       clock-output-names = "uart";
-               };
-
-               /*
-                * Keep the stub clock for ufs driver, until proper clock
-                * driver is implemented.
-                */
-               ufs_core_clock: ufs-core-clock {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <166562500>;
-               };
        };
 
        soc: soc@0 {
                        reg = <0x10000000 0x24>;
                };
 
+               cmu_peris: clock-controller@10020000 {
+                       compatible = "samsung,exynosautov9-cmu-peris";
+                       reg = <0x10020000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_PERIS_BUS>;
+                       clock-names = "oscclk",
+                                     "dout_clkcmu_peris_bus";
+               };
+
+               cmu_peric0: clock-controller@10200000 {
+                       compatible = "samsung,exynosautov9-cmu-peric0";
+                       reg = <0x10200000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_PERIC0_BUS>,
+                                <&cmu_top DOUT_CLKCMU_PERIC0_IP>;
+                       clock-names = "oscclk",
+                                     "dout_clkcmu_peric0_bus",
+                                     "dout_clkcmu_peric0_ip";
+               };
+
+               cmu_peric1: clock-controller@10800000 {
+                       compatible = "samsung,exynosautov9-cmu-peric1";
+                       reg = <0x10800000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_PERIC1_BUS>,
+                                <&cmu_top DOUT_CLKCMU_PERIC1_IP>;
+                       clock-names = "oscclk",
+                                     "dout_clkcmu_peric1_bus",
+                                     "dout_clkcmu_peric1_ip";
+               };
+
+               cmu_fsys2: clock-controller@17c00000 {
+                       compatible = "samsung,exynosautov9-cmu-fsys2";
+                       reg = <0x17c00000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_FSYS2_BUS>,
+                                <&cmu_top DOUT_CLKCMU_FSYS2_UFS_EMBD>,
+                                <&cmu_top DOUT_CLKCMU_FSYS2_ETHERNET>;
+                       clock-names = "oscclk",
+                                     "dout_clkcmu_fsys2_bus",
+                                     "dout_fsys2_clkcmu_ufs_embd",
+                                     "dout_fsys2_clkcmu_ethernet";
+               };
+
+               cmu_core: clock-controller@1b030000 {
+                       compatible = "samsung,exynosautov9-cmu-core";
+                       reg = <0x1b030000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_CORE_BUS>;
+                       clock-names = "oscclk",
+                                     "dout_clkcmu_core_bus";
+               };
+
+               cmu_busmc: clock-controller@1b200000 {
+                       compatible = "samsung,exynosautov9-cmu-busmc";
+                       reg = <0x1b200000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>,
+                                <&cmu_top DOUT_CLKCMU_BUSMC_BUS>;
+                       clock-names = "oscclk",
+                                     "dout_clkcmu_busmc_bus";
+               };
+
+               cmu_top: clock-controller@1b240000 {
+                       compatible = "samsung,exynosautov9-cmu-top";
+                       reg = <0x1b240000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&xtcxo>;
+                       clock-names = "oscclk";
+               };
+
                gic: interrupt-controller@10101000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
-                       clocks = <&uart_clock>, <&uart_clock>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PCLK_0>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_IPCLK_0>;
                        clock-names = "pclk", "ipclk";
                        status = "disabled";
 
                                interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&uart0_bus_dual>;
-                               clocks = <&uart_clock>, <&uart_clock>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_IPCLK_0>;
                                clock-names = "uart", "clk_uart_baud0";
                                status = "disabled";
                        };
                                <0x17dc0000 0x2200>;  /* 3: UFS protector */
                        reg-names = "hci", "vs_hci", "unipro", "ufsp";
                        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&ufs_core_clock>,
-                               <&ufs_core_clock>;
+                       clocks = <&cmu_fsys2 CLK_GOUT_FSYS2_UFS_EMBD0_ACLK>,
+                                <&cmu_fsys2 CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO>;
                        clock-names = "core_clk", "sclk_unipro_main";
                        freq-table-hz = <0 0>, <0 0>;
                        pinctrl-names = "default";
index 7f51b53..238a83e 100644 (file)
@@ -49,12 +49,14 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-899b.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds-9999.dtb
 
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mm-data-modul-edm-sbc.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-ddr4-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-emcon-avari.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-ctouch2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-icore-mx8mm-edimm2.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-kontron-n801x-s.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mm-mx8menlo.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-nitrogen-r2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-tqma8mqml-mba8mx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-var-som-symphony.dtb
@@ -72,12 +74,19 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mn-beacon-kit.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-bsh-smm-s2pro.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr3l-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-ddr4-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-tqma8mqnl-mba8mx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-var-som-symphony.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mn-venice-gw7902.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dahlia.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-nonwifi-dev.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dahlia.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-verdin-wifi-dev.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-hummingboard-pulse.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mq-kontron-pitx-imx8m.dtb
index c03f4e1..4ab17b9 100644 (file)
        status = "okay";
 };
 
+&mscc_felix_port4 {
+       dsa-tag-protocol = "ocelot-8021q";
+};
+
+&mscc_felix_port5 {
+       dsa-tag-protocol = "ocelot-8021q";
+};
+
 &usb0 {
        status = "okay";
 };
 
 &usb1 {
+       dr_mode = "host";
        status = "okay";
 };
index 19d3952..5baf060 100644 (file)
 };
 
 &usb0 {
+       dr_mode = "host";
        status = "okay";
 };
 
 &usb1 {
+       dr_mode = "host";
        status = "okay";
 };
index 68c31cb..e0cd151 100644 (file)
 };
 
 &usb0 {
+       dr_mode = "host";
        status = "okay";
 };
 
 &usb1 {
-       dr_mode = "otg";
        status = "okay";
 };
index 088271d..92465f7 100644 (file)
                        compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
                        reg = <0x0 0x3100000 0x0 0x10000>;
                        interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       dr_mode = "host";
                        snps,dis_rxdet_inp3_quirk;
                        snps,quirk-frame-length-adjustment = <0x20>;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
                        compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
                        reg = <0x0 0x3110000 0x0 0x10000>;
                        interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
-                       dr_mode = "host";
                        snps,dis_rxdet_inp3_quirk;
                        snps,quirk-frame-length-adjustment = <0x20>;
                        snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
index 35d1939..21200cb 100644 (file)
                                        <9 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
                                        <10 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
                                        <11 0 &gic GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
-                               interrupt-map-mask = <0xffffffff 0x0>;
+                               interrupt-map-mask = <0xf 0x0>;
                        };
                };
 
                        big-endian;
                };
 
-               ifc: ifc@1530000 {
-                       compatible = "fsl,ifc", "simple-bus";
+               ifc: memory-controller@1530000 {
+                       compatible = "fsl,ifc";
                        reg = <0x0 0x1530000 0x0 0x10000>;
                        interrupts = <0 43 0x4>;
                };
index 4e7bd04..0085e83 100644 (file)
                        big-endian;
                };
 
-               ifc: ifc@1530000 {
-                       compatible = "fsl,ifc", "simple-bus";
+               ifc: memory-controller@1530000 {
+                       compatible = "fsl,ifc";
                        reg = <0x0 0x1530000 0x0 0x10000>;
                        interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                                        <9 0 &gic GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
                                        <10 0 &gic GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>,
                                        <11 0 &gic GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
-                               interrupt-map-mask = <0xffffffff 0x0>;
+                               interrupt-map-mask = <0xf 0x0>;
                        };
                };
 
index 18e5291..f476b7d 100644 (file)
                                        <9 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
                                        <10 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
                                        <11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-                               interrupt-map-mask = <0xffffffff 0x0>;
+                               interrupt-map-mask = <0xf 0x0>;
                        };
                };
 
                        #interrupt-cells = <2>;
                };
 
-               ifc: ifc@2240000 {
-                       compatible = "fsl,ifc", "simple-bus";
+               ifc: memory-controller@2240000 {
+                       compatible = "fsl,ifc";
                        reg = <0x0 0x2240000 0x0 0x20000>;
                        interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
                        little-endian;
index 10d2fe0..6fab73d 100644 (file)
 
 &dspi {
        status = "okay";
-       dflash0: n25q128a@0 {
+       dflash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p80";
                spi-max-frequency = <3000000>;
                reg = <0>;
        };
-       dflash1: sst25wf040b@1 {
+       dflash1: flash@1 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p80";
                spi-max-frequency = <3000000>;
                reg = <1>;
        };
-       dflash2: en25s64@2 {
+       dflash2: flash@2 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p80";
 
 &qspi {
        status = "okay";
-       flash0: s25fl256s1@0 {
+       flash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p80";
                spi-tx-bus-width = <4>;
                reg = <0>;
        };
-       flash2: s25fl256s1@2 {
+       flash2: flash@2 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p80";
index 4b71c4f..f8135c5 100644 (file)
 
 &dspi {
        status = "okay";
-       dflash0: n25q512a@0 {
+       dflash0: flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "st,m25p80";
index 1282b61..4ba1e04 100644 (file)
                                        <9 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
                                        <10 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
                                        <11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-                               interrupt-map-mask = <0xffffffff 0x0>;
+                               interrupt-map-mask = <0xf 0x0>;
                        };
                };
 
                                            QORIQ_CLK_PLL_DIV(4)>;
                };
 
-               ifc: ifc@2240000 {
-                       compatible = "fsl,ifc", "simple-bus";
+               ifc: memory-controller@2240000 {
+                       compatible = "fsl,ifc";
                        reg = <0x0 0x2240000 0x0 0x20000>;
                        interrupts = <0 21 0x4>; /* Level high type */
                        little-endian;
index c5daa15..47ea854 100644 (file)
                                        <9 0 &gic GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
                                        <10 0 &gic GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
                                        <11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-                               interrupt-map-mask = <0xffffffff 0x0>;
+                               interrupt-map-mask = <0xf 0x0>;
                        };
                };
 
                                            QORIQ_CLK_PLL_DIV(8)>,
                                 <&clockgen QORIQ_CLK_SYSCLK 0>;
                        clock-names = "ipg", "per";
-                       fsl,clk-source = <0>;
+                       fsl,clk-source = /bits/ 8 <0>;
                        status = "disabled";
                };
 
                                            QORIQ_CLK_PLL_DIV(8)>,
                                 <&clockgen QORIQ_CLK_SYSCLK 0>;
                        clock-names = "ipg", "per";
-                       fsl,clk-source = <0>;
+                       fsl,clk-source = /bits/ 8 <0>;
                        status = "disabled";
                };
 
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi
new file mode 100644 (file)
index 0000000..c654076
--- /dev/null
@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2021 NXP
+ *     Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+vpu: vpu@2c000000 {
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x2c000000 0x0 0x2c000000 0x2000000>;
+       reg = <0 0x2c000000 0 0x1000000>;
+       power-domains = <&pd IMX_SC_R_VPU>;
+       status = "disabled";
+
+       mu_m0: mailbox@2d000000 {
+               compatible = "fsl,imx6sx-mu";
+               reg = <0x2d000000 0x20000>;
+               interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <2>;
+               power-domains = <&pd IMX_SC_R_VPU_MU_0>;
+               status = "disabled";
+       };
+
+       mu1_m0: mailbox@2d020000 {
+               compatible = "fsl,imx6sx-mu";
+               reg = <0x2d020000 0x20000>;
+               interrupts = <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <2>;
+               power-domains = <&pd IMX_SC_R_VPU_MU_1>;
+               status = "disabled";
+       };
+
+       mu2_m0: mailbox@2d040000 {
+               compatible = "fsl,imx6sx-mu";
+               reg = <0x2d040000 0x20000>;
+               interrupts = <GIC_SPI 474 IRQ_TYPE_LEVEL_HIGH>;
+               #mbox-cells = <2>;
+               power-domains = <&pd IMX_SC_R_VPU_MU_2>;
+               status = "disabled";
+       };
+
+       vpu_core0: vpu-core@2d080000 {
+               reg = <0x2d080000 0x10000>;
+               compatible = "nxp,imx8q-vpu-decoder";
+               power-domains = <&pd IMX_SC_R_VPU_DEC_0>;
+               mbox-names = "tx0", "tx1", "rx";
+               mboxes = <&mu_m0 0 0>,
+                       <&mu_m0 0 1>,
+                       <&mu_m0 1 0>;
+               status = "disabled";
+       };
+
+       vpu_core1: vpu-core@2d090000 {
+               reg = <0x2d090000 0x10000>;
+               compatible = "nxp,imx8q-vpu-encoder";
+               power-domains = <&pd IMX_SC_R_VPU_ENC_0>;
+               mbox-names = "tx0", "tx1", "rx";
+               mboxes = <&mu1_m0 0 0>,
+                       <&mu1_m0 0 1>,
+                       <&mu1_m0 1 0>;
+               status = "disabled";
+       };
+
+       vpu_core2: vpu-core@2d0a0000 {
+               reg = <0x2d0a0000 0x10000>;
+               compatible = "nxp,imx8q-vpu-encoder";
+               power-domains = <&pd IMX_SC_R_VPU_ENC_1>;
+               mbox-names = "tx0", "tx1", "rx";
+               mboxes = <&mu2_m0 0 0>,
+                       <&mu2_m0 0 1>,
+                       <&mu2_m0 1 0>;
+               status = "disabled";
+       };
+};
index ec3f2c1..f338a88 100644 (file)
        pinctrl-0 = <&pinctrl_uart3>;
        assigned-clocks = <&clk IMX8MM_CLK_UART3>;
        assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
+       uart-has-rtscts;
        status = "okay";
 };
 
                fsl,pins = <
                        MX8MM_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX   0x40
                        MX8MM_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX   0x40
+                       MX8MM_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B        0x40
+                       MX8MM_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x40
                >;
        };
 
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts b/arch/arm64/boot/dts/freescale/imx8mm-data-modul-edm-sbc.dts
new file mode 100644 (file)
index 0000000..778bdbe
--- /dev/null
@@ -0,0 +1,997 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2022 Marek Vasut <marex@denx.de>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/net/qca-ar803x.h>
+#include <dt-bindings/phy/phy-imx8-pcie.h>
+#include "imx8mm.dtsi"
+
+/ {
+       model = "Data Modul i.MX8M Mini eDM SBC";
+       compatible = "dmo,imx8mm-data-modul-edm-sbc", "fsl,imx8mm";
+
+       aliases {
+               rtc0 = &rtc;
+               rtc1 = &snvs_rtc;
+       };
+
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               /* There are 1/2/4 GiB options, adjusted by bootloader. */
+               reg = <0x0 0x40000000 0 0x40000000>;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_panel_backlight>;
+               brightness-levels = <0 1 10 20 30 40 50 60 70 75 80 90 100>;
+               default-brightness-level = <7>;
+               enable-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
+               pwms = <&pwm1 0 5000000 0>;
+               /* Disabled by default, unless display board plugged in. */
+               status = "disabled";
+       };
+
+       clk_xtal25: clk-xtal25 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <25000000>;
+       };
+
+       panel: panel {
+               backlight = <&backlight>;
+               power-supply = <&reg_panel_vcc>;
+               /* Disabled by default, unless display board plugged in. */
+               status = "disabled";
+       };
+
+       reg_panel_vcc: regulator-panel-vcc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_panel_vcc_reg>;
+               regulator-name = "PANEL_VCC";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               gpio = <&gpio3 6 0>;
+               enable-active-high;
+               /* Disabled by default, unless display board plugged in. */
+               status = "disabled";
+       };
+
+       reg_usdhc2_vcc: regulator-usdhc2-vcc {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usdhc2_vcc_reg>;
+               regulator-name = "V_3V3_SD";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 0>;
+               enable-active-high;
+       };
+
+       watchdog-gpio {
+               /* TPS3813 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_watchdog_gpio>;
+               compatible = "linux,wdt-gpio";
+               always-enabled;
+               gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+               hw_algo = "level";
+               /* Reset triggers in 2..3 seconds */
+               hw_margin_ms = <1500>;
+               /* Disabled by default */
+               status = "disabled";
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2_reg>;
+};
+
+&ddrc {
+       operating-points-v2 = <&ddrc_opp_table>;
+
+       ddrc_opp_table: opp-table {
+               compatible = "operating-points-v2";
+
+               opp-25M {
+                       opp-hz = /bits/ 64 <25000000>;
+               };
+
+               opp-100M {
+                       opp-hz = /bits/ 64 <100000000>;
+               };
+
+               opp-750M {
+                       opp-hz = /bits/ 64 <750000000>;
+               };
+       };
+};
+
+&ecspi1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       flash@0 {       /* W25Q128FVSI */
+               compatible = "jedec,spi-nor";
+               m25p,fast-read;
+               spi-max-frequency = <50000000>;
+               reg = <0>;
+       };
+};
+
+&ecspi2 {      /* Feature connector SPI */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi2>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       /* Disabled by default, unless feature board plugged in. */
+       status = "disabled";
+};
+
+&ecspi3 {      /* Display connector SPI */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi3>;
+       cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
+       /* Disabled by default, unless display board plugged in. */
+       status = "disabled";
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec1>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&fec1_phy>;
+       phy-supply = <&buck4_reg>;
+       fsl,magic-packet;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Atheros AR8031 PHY */
+               fec1_phy: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0>;
+                       /*
+                        * Dedicated ENET_WOL# signal is unused, the PHY
+                        * can wake the SoC up via INT signal as well.
+                        */
+                       interrupts-extended = <&gpio1 15 IRQ_TYPE_LEVEL_LOW>;
+                       reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <10000>;
+                       qca,clk-out-frequency = <125000000>;
+                       qca,clk-out-strength = <AR803X_STRENGTH_FULL>;
+                       qca,keep-pll-enabled;
+                       vddio-supply = <&vddio>;
+
+                       vddio: vddio-regulator {
+                               regulator-name = "VDDIO";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       vddh: vddh-regulator {
+                               regulator-name = "VDDH";
+                       };
+               };
+       };
+};
+
+&gpio1 {
+       gpio-line-names =
+               "", "ENET_RST#", "WDOG_B#", "PMIC_INT#",
+               "", "M2-B_PCIE_RST#", "M2-B_PCIE_WAKE#", "RTC_IRQ#",
+               "WDOG_KICK#", "M2-B_PCIE_CLKREQ#",
+               "USB1_OTG_ID_3V3", "ENET_WOL#",
+               "", "", "", "ENET_INT#",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               "MEMCFG2", "MEMCFG1", "DSI_RESET_1V8#", "DSI_IRQ_1V8#",
+               "M2-B_FULL_CARD_PWROFF_1V8#", "EEPROM_WP_1V8#",
+               "PCIE_CLK_GEN_CLKPWRGD_PD_1V8#", "GRAPHICS_PRSNT_1V8#",
+               "MEMCFG0", "WDOG_EN",
+               "M2-B_W_DISABLE1_WWAN_1V8#", "M2-B_W_DISABLE2_GPS_1V8#",
+               "", "", "", "",
+               "", "", "", "SD2_RESET#", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               "BL_ENABLE_1V8", "PG_V_IN_VAR#", "", "",
+               "", "", "TFT_ENABLE_1V8", "GRAPHICS_GPIO0_1V8",
+               "CSI_PD_1V8", "CSI_RESET_1V8#", "", "",
+               "", "", "", "",
+               "", "", "", "M2-B_WAKE_WWAN_1V8#",
+               "M2-B_RESET_1V8#", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               "NC0", "NC1", "BOOTCFG0", "BOOTCFG1",
+               "BOOTCFG2", "BOOTCFG3", "BOOTCFG4", "BOOTCFG5",
+               "BOOTCFG6", "BOOTCFG7", "NC10", "NC11",
+               "BOOTCFG8", "BOOTCFG9", "BOOTCFG10", "BOOTCFG11",
+               "BOOTCFG12", "BOOTCFG13", "BOOTCFG14", "BOOTCFG15",
+               "NC20", "", "", "",
+               "", "CAN_INT#", "CAN_RST#", "GPIO4_IO27",
+               "DIS_USB_DN2", "", "", "";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "", "DIS_USB_DN1", "USBHUB_RESET#", "GPIO5_IO03",
+               "GPIO5_IO04", "", "", "",
+               "", "SPI1_CS#", "", "",
+               "", "SPI2_CS#", "I2C1_SCL_3V3", "I2C1_SDA_3V3",
+               "I2C2_SCL_3V3", "I2C2_SDA_3V3", "I2C3_SCL_3V3", "I2C3_SDA_3V3",
+               "I2C4_SCL_3V3", "I2C4_SDA_3V3", "", "",
+               "", "SPI3_CS#", "", "", "", "", "", "";
+};
+
+&i2c1 {
+       /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       pmic: pmic@4b {
+               compatible = "rohm,bd71847";
+               reg = <0x4b>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
+               rohm,reset-snvs-powered;
+
+               /*
+                * i.MX 8M Mini Data Sheet for Consumer Products
+                * 3.1.3 Operating ranges
+                * MIMX8MM4DVTLZAA
+                */
+               regulators {
+                       /* VDD_SOC */
+                       buck1_reg: BUCK1 {
+                               regulator-name = "buck1";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                       };
+
+                       /* VDD_ARM */
+                       buck2_reg: BUCK2 {
+                               regulator-name = "buck2";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1050000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <1250>;
+                               rohm,dvs-run-voltage = <1000000>;
+                               rohm,dvs-idle-voltage = <950000>;
+                       };
+
+                       /* VDD_DRAM, BUCK5 */
+                       buck3_reg: BUCK3 {
+                               regulator-name = "buck3";
+                               /* 1.5 GHz DDR bus clock */
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 3V3_VDD, BUCK6 */
+                       buck4_reg: BUCK4 {
+                               regulator-name = "buck4";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 1V8_VDD, BUCK7 */
+                       buck5_reg: BUCK5 {
+                               regulator-name = "buck5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 1V1_NVCC_DRAM, BUCK8 */
+                       buck6_reg: BUCK6 {
+                               regulator-name = "buck6";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 1V8_NVCC_SNVS */
+                       ldo1_reg: LDO1 {
+                               regulator-name = "ldo1";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 0V8_VDD_SNVS */
+                       ldo2_reg: LDO2 {
+                               regulator-name = "ldo2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 1V8_VDDA */
+                       ldo3_reg: LDO3 {
+                               regulator-name = "ldo3";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 0V9_VDD_PHY */
+                       ldo4_reg: LDO4 {
+                               regulator-name = "ldo4";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       /* 1V2_VDD_PHY */
+                       ldo6_reg: LDO6 {
+                               regulator-name = "ldo6";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       usb-hub@2c {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb_hub>;
+               compatible = "microchip,usb2514bi";
+               reg = <0x2c>;
+               individual-port-switching;
+               reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
+               self-powered;
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "atmel,24c32";
+               reg = <0x50>;
+               pagesize = <32>;
+       };
+
+       rtc: rtc@68 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_rtc>;
+               compatible = "st,m41t62";
+               reg = <0x68>;
+               interrupts-extended = <&gpio1 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pcieclk: clk@6a {
+               compatible = "renesas,9fgv0241";
+               reg = <0x6a>;
+               clocks = <&clk_xtal25>;
+               #clock-cells = <1>;
+       };
+};
+
+&i2c3 {        /* Display connector I2C */
+       /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
+       clock-frequency = <320000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&i2c4 {        /* Feature connector I2C */
+       /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
+       clock-frequency = <320000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_gpio>;
+       scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog_feature>, <&pinctrl_hog_misc>,
+                   <&pinctrl_hog_panel>, <&pinctrl_hog_sbc>,
+                   <&pinctrl_panel_expansion>;
+
+       pinctrl_ecspi1: ecspi1-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x44
+                       MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x44
+                       MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x44
+                       MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x40
+               >;
+       };
+
+       pinctrl_ecspi2: ecspi2-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK            0x44
+                       MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI            0x44
+                       MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO            0x44
+                       MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13              0x40
+               >;
+       };
+
+       pinctrl_ecspi3: ecspi3-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK              0x44
+                       MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI              0x44
+                       MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO              0x44
+                       MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25               0x40
+               >;
+       };
+
+       pinctrl_fec1: fec1-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                 0x3
+                       MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO               0x3
+                       MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
+                       MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
+                       MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
+                       MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
+                       MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
+                       MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
+                       MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x1f
+                       MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x1f
+                       MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
+                       MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
+                       MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x1f
+                       MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
+                       /* ENET_RST# */
+                       MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1               0x6
+                       /* ENET_WOL# */
+                       MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x40000090
+                       /* ENET_INT# */
+                       MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15              0x40000090
+               >;
+       };
+
+       pinctrl_hog_feature: hog-feature-grp {
+               fsl,pins = <
+                       /* GPIO4_IO27 */
+                       MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27               0x40000006
+                       /* GPIO5_IO03 */
+                       MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3                 0x40000006
+                       /* GPIO5_IO04 */
+                       MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4                 0x40000006
+
+                       /* CAN_INT# */
+                       MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25                0x40000090
+                       /* CAN_RST# */
+                       MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26               0x26
+               >;
+       };
+
+       pinctrl_hog_panel: hog-panel-grp {
+               fsl,pins = <
+                       /* GRAPHICS_GPIO0_1V8 */
+                       MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7              0x26
+               >;
+       };
+
+       pinctrl_hog_misc: hog-misc-grp {
+               fsl,pins = <
+                       /* PG_V_IN_VAR# */
+                       MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1               0x40000000
+                       /* CSI_PD_1V8 */
+                       MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8              0x0
+                       /* CSI_RESET_1V8# */
+                       MX8MM_IOMUXC_NAND_DATA03_GPIO3_IO9              0x0
+
+                       /* DIS_USB_DN1 */
+                       MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1                 0x0
+                       /* DIS_USB_DN2 */
+                       MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28               0x0
+
+                       /* EEPROM_WP_1V8# */
+                       MX8MM_IOMUXC_SD1_DATA3_GPIO2_IO5                0x100
+                       /* PCIE_CLK_GEN_CLKPWRGD_PD_1V8# */
+                       MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6                0x0
+                       /* GRAPHICS_PRSNT_1V8# */
+                       MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7                0x40000000
+
+                       /* CLK_CCM_CLKO1_3V3 */
+                       MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1      0x10
+               >;
+       };
+
+       pinctrl_hog_sbc: hog-sbc-grp {
+               fsl,pins = <
+                       /* MEMCFG[0..2] straps */
+                       MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8                0x40000140
+                       MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1                  0x40000140
+                       MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0                  0x40000140
+
+                       /* BOOT_CFG[0..15] straps */
+                       MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8                0x40000000
+                       MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9                0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18               0x40000000
+                       MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19               0x40000000
+
+                       /* Not connected pins */
+                       MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20               0x0
+                       MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10               0x0
+                       MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11                0x0
+                       MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0                0x0
+                       MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1                 0x0
+               >;
+       };
+
+       pinctrl_i2c1: i2c1-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL                  0x40000084
+                       MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                  0x40000084
+               >;
+       };
+
+       pinctrl_i2c1_gpio: i2c1-gpio-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14                0x84
+                       MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15                0x84
+               >;
+       };
+
+       pinctrl_i2c2: i2c2-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL                  0x40000084
+                       MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA                  0x40000084
+               >;
+       };
+
+       pinctrl_i2c2_gpio: i2c2-gpio-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16                0x84
+                       MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17                0x84
+               >;
+       };
+
+       pinctrl_i2c3: i2c3-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL                  0x40000084
+                       MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA                  0x40000084
+               >;
+       };
+
+       pinctrl_i2c3_gpio: i2c3-gpio-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18                0x84
+                       MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19                0x84
+               >;
+       };
+
+       pinctrl_i2c4: i2c4-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL                  0x40000084
+                       MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA                  0x40000084
+               >;
+       };
+
+       pinctrl_i2c4_gpio: i2c4-gpio-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20                0x84
+                       MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21                0x84
+               >;
+       };
+
+       pinctrl_panel_backlight: panel-backlight-grp {
+               fsl,pins = <
+                       /* BL_ENABLE_1V8 */
+                       MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0                 0x104
+               >;
+       };
+
+       pinctrl_panel_expansion: panel-expansion-grp {
+               fsl,pins = <
+                       /* DSI_RESET_1V8# */
+                       MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2                0x2
+                       /* DSI_IRQ_1V8# */
+                       MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3                0x40000090
+               >;
+       };
+
+       pinctrl_panel_vcc_reg: panel-vcc-grp {
+               fsl,pins = <
+                       /* TFT_ENABLE_1V8 */
+                       MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6              0x104
+               >;
+       };
+
+       pinctrl_panel_pwm: panel-pwm-grp {
+               fsl,pins = <
+                       /* BL_PWM_3V3 */
+                       MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT             0x12
+               >;
+       };
+
+       pinctrl_pcie0: pcie-grp {
+               fsl,pins = <
+                       /* M2-B_RESET_1V8# */
+                       MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20                0x102
+                       /* M2-B_PCIE_RST# */
+                       MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5               0x2
+                       /* M2-B_FULL_CARD_PWROFF_1V8# */
+                       MX8MM_IOMUXC_SD1_DATA2_GPIO2_IO4                0x102
+                       /* M2-B_W_DISABLE1_WWAN_1V8# */
+                       MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10             0x102
+                       /* M2-B_W_DISABLE2_GPS_1V8# */
+                       MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11              0x102
+                       /* CLK_M2_32K768 */
+                       MX8MM_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K      0x14
+                       /* M2-B_WAKE_WWAN_1V8# */
+                       MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19               0x40000140
+                       /* M2-B_PCIE_WAKE# */
+                       MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6               0x40000140
+                       /* M2-B_PCIE_CLKREQ# */
+                       MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x40000140
+               >;
+       };
+
+       pinctrl_pmic: pmic-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3               0x40000090
+               >;
+       };
+
+       pinctrl_rtc: rtc-grp {
+               fsl,pins = <
+                       /* RTC_IRQ# */
+                       MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7               0x40000090
+               >;
+       };
+
+       pinctrl_sai5: sai5-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK                0x100
+                       MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0            0x0
+                       MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC             0x100
+                       MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK             0x100
+                       MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0            0x100
+               >;
+       };
+
+       pinctrl_uart1: uart1-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX              0x90
+                       MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B          0x90
+                       MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX             0x50
+                       MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B          0x50
+               >;
+       };
+
+       pinctrl_uart2: uart2-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B           0x50
+                       MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B           0x90
+                       MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX              0x50
+                       MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX             0x90
+               >;
+       };
+
+       pinctrl_uart3: uart3-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX             0x40
+                       MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX             0x40
+               >;
+       };
+
+       pinctrl_uart4: uart4-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX             0x40
+                       MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX             0x40
+               >;
+       };
+
+       pinctrl_usb_hub: usb-hub-grp {
+               fsl,pins = <
+                       /* USBHUB_RESET# */
+                       MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2                0x4
+               >;
+       };
+
+       pinctrl_usb_otg1: usb-otg1-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10              0x40000000
+                       MX8MM_IOMUXC_GPIO1_IO12_USB1_OTG_PWR            0x4
+                       MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC             0x40000090
+               >;
+       };
+
+       pinctrl_usdhc2_vcc_reg: usdhc2-vcc-reg-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19             0x4
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x190
+                       MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d0
+                       MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d0
+                       MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d0
+                       MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d0
+                       MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d0
+                       MX8MM_IOMUXC_SD2_WP_USDHC2_WP                   0x400000d6
+                       MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B               0x0d6
+                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x194
+                       MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d4
+                       MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d4
+                       MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d4
+                       MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d4
+                       MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d4
+                       MX8MM_IOMUXC_SD2_WP_USDHC2_WP                   0x400000d6
+                       MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B               0x0d6
+                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x196
+                       MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d6
+                       MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d6
+                       MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d6
+                       MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d6
+                       MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d6
+                       MX8MM_IOMUXC_SD2_WP_USDHC2_WP                   0x400000d6
+                       MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B               0x0d6
+                       MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x190
+                       MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d0
+                       MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d0
+                       MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d0
+                       MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
+                       MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d0
+                       MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d0
+                       MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d0
+                       MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d0
+                       MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d0
+                       MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x190
+                       MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B           0x40
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x194
+                       MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d4
+                       MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d4
+                       MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d4
+                       MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d4
+                       MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d4
+                       MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d4
+                       MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d4
+                       MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d4
+                       MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d4
+                       MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x194
+                       MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B           0x40
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x196
+                       MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d6
+                       MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d6
+                       MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d6
+                       MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d6
+                       MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d6
+                       MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d6
+                       MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d6
+                       MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d6
+                       MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d6
+                       MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x196
+                       MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B           0x40
+               >;
+       };
+
+       pinctrl_watchdog_gpio: watchdog-gpio-grp {
+               fsl,pins = <
+                       /* WDOG_B# */
+                       MX8MM_IOMUXC_GPIO1_IO02_GPIO1_IO2               0x26
+                       /* WDOG_EN -- ungate WDT RESET# signal propagation */
+                       MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9                0x6
+                       /* WDOG_KICK# / WDI */
+                       MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8               0x26
+               >;
+       };
+};
+
+&pcie_phy {
+       fsl,clkreq-unsupported; /* CLKREQ_B is not connected to suitable input */
+       fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
+       fsl,tx-deemph-gen1 = <0x2d>;
+       fsl,tx-deemph-gen2 = <0xf>;
+       clocks = <&pcieclk 0>;
+       status = "okay";
+};
+
+&pcie0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pcie0>;
+       reset-gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
+       clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>,
+                <&pcieclk 0>;
+       clock-names = "pcie", "pcie_aux", "pcie_bus";
+       assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
+                         <&clk IMX8MM_CLK_PCIE1_CTRL>;
+       assigned-clock-rates = <10000000>, <250000000>;
+       assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
+                                <&clk IMX8MM_SYS_PLL2_250M>;
+       status = "okay";
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_panel_pwm>;
+       /* Disabled by default, unless display board plugged in. */
+       status = "disabled";
+};
+
+&sai5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai5>;
+       fsl,sai-mclk-direction-output;
+       /* Input into codec PLL */
+       assigned-clocks = <&clk IMX8MM_CLK_SAI5>;
+       assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL2_OUT>;
+       assigned-clock-rates = <22579200>;
+       /* Disabled by default, unless display board plugged in. */
+       status = "disabled";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       uart-has-rtscts;
+       status = "disabled";
+};
+
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "disabled";
+};
+
+&uart3 {       /* A53 Debug */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       status = "okay";
+};
+
+&uart4 {       /* M4 Debug */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       /* UART4 is reserved for CM and RDC blocks CA access to UART4. */
+       status = "disabled";
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_otg1>;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usbotg2 {
+       disable-over-current;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc2 {      /* MicroSD */
+       assigned-clocks = <&clk IMX8MM_CLK_USDHC2_ROOT>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+       bus-width = <4>;
+       vmmc-supply = <&reg_usdhc2_vcc>;
+       status = "okay";
+};
+
+&usdhc3 {      /* eMMC */
+       assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>;
+       assigned-clock-rates = <400000000>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       vmmc-supply = <&buck4_reg>;
+       vqmmc-supply = <&buck5_reg>;
+       status = "okay";
+};
+
+&wdog1 {
+       status = "okay";
+};
index 7c4af71..0dbdc9e 100644 (file)
@@ -98,7 +98,7 @@
        pinctrl-1 = <&pinctrl_flexspi1>;
        status = "okay";
 
-       flash0: spi-flash@0 {
+       flash0: flash@0 {
                reg = <0>;
                #address-cells = <1>;
                #size-cells = <1>;
index 6d67df7..c42b966 100644 (file)
                enable-active-high;
        };
 
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pwm1 0 5000000 0>;
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <250>;
+       };
+
        ir-receiver {
                compatible = "gpio-ir-receiver";
                gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
        status = "okay";
 };
 
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_backlight>;
+       status = "okay";
+};
+
 &iomuxc {
        pinctrl_fec1: fec1grp {
                fsl,pins = <
                        MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B    0x166
                >;
        };
+
+       pinctrl_backlight: backlightgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_GPIO1_IO01_PWM1_OUT        0x06
+               >;
+       };
 };
index d40caf1..23be1ec 100644 (file)
                #address-cells = <1>;
                #size-cells = <0>;
 
-               usbnet: usbether@1 {
+               usbnet: ethernet@1 {
                        compatible = "usb424,ec00";
                        reg = <1>;
                        local-mac-address = [ 00 00 00 00 00 00 ];
index 22a5ef7..8f90eb0 100644 (file)
@@ -66,7 +66,7 @@
        cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "mxicy,mx25r1635f", "jedec,spi-nor";
                spi-max-frequency = <80000000>;
                reg = <0>;
diff --git a/arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts b/arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts
new file mode 100644 (file)
index 0000000..92eaf4e
--- /dev/null
@@ -0,0 +1,334 @@
+// SPDX-License-Identifier: GPL-2.0+ OR MIT
+/*
+ * Copyright 2021-2022 Marek Vasut <marex@denx.de>
+ */
+
+/dts-v1/;
+
+#include "imx8mm-verdin.dtsi"
+
+/ {
+       model = "MENLO MX8MM EMBEDDED DEVICE";
+       compatible = "menlo,mx8menlo",
+                    "toradex,verdin-imx8mm",
+                    "fsl,imx8mm";
+
+       /delete-node/ gpio-keys;
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_led>;
+
+               user1 {
+                       label = "TestLed601";
+                       gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "mmc0";
+               };
+
+               user2 {
+                       label = "TestLed602";
+                       gpios = <&gpio4 10 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       beeper {
+               compatible = "gpio-beeper";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_beeper>;
+               gpios = <&gpio5 3 GPIO_ACTIVE_HIGH>;
+       };
+
+       /* Fixed clock dedicated to SPI CAN on carrier board */
+       clk_xtal20: clk-xtal20 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <20000000>;
+       };
+};
+
+&ecspi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       /* CAN controller on the baseboard */
+       canfd: can@0 {
+               compatible = "microchip,mcp2518fd";
+               clocks = <&clk_xtal20>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+               reg = <0>;
+               spi-max-frequency = <2000000>;
+       };
+
+};
+
+&ecspi2 {
+       pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_gpio1>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>, <&gpio3 4 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       spidev@0 {
+               compatible = "menlo,m53cpld";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+       };
+
+       spidev@1 {
+               compatible = "menlo,m53cpld";
+               reg = <1>;
+               spi-max-frequency = <25000000>;
+       };
+
+};
+
+&ethphy0 {
+       max-speed = <100>;
+};
+
+&fec1 {
+       status = "okay";
+};
+
+&flexspi {
+       status = "okay";
+
+       flash@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <66000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <4>;
+       };
+};
+
+&gpio1 {
+       gpio-line-names =
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "DISP_reset", "KBD_intI",
+               "", "", "", "",
+               "", "", "", "";
+};
+
+&gpio4 {
+       /*
+        * CPLD_D[n] is ARM_CPLD[n] in schematic
+        * CPLD_int is SA_INTERRUPT in schematic
+        * CPLD_reset is RESET_SOFT in schematic
+        */
+       gpio-line-names =
+               "CPLD_D[1]", "CPLD_int", "CPLD_reset", "",
+               "", "CPLD_D[0]", "", "",
+               "", "", "", "CPLD_D[2]",
+               "CPLD_D[3]", "CPLD_D[4]", "CPLD_D[5]", "CPLD_D[6]",
+               "CPLD_D[7]", "", "", "",
+               "", "", "", "",
+               "", "", "", "KBD_intK",
+               "", "", "", "";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "",
+               "", "", "", "";
+};
+
+&gpio_expander_21 {
+       status = "okay";
+};
+
+&hwmon {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       /* None of this is present on the SoM. */
+       /delete-node/ bridge@2c;
+       /delete-node/ hdmi@48;
+       /delete-node/ touch@4a;
+       /delete-node/ sensor@4f;
+       /delete-node/ eeprom@50;
+       /delete-node/ eeprom@57;
+};
+
+&iomuxc {
+       pinctrl-0 = <&pinctrl_gpio7>, <&pinctrl_gpio_hog1>,
+                   <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>;
+
+       pinctrl_beeper: beepergrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3                 0x1c4
+               >;
+       };
+
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x4
+                       MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x4
+                       MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x1c4
+                       MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x1c4
+               >;
+       };
+
+       pinctrl_led: ledgrp {
+               fsl,pins = <
+                       MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18               0x1c4
+                       MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10               0x1c4
+               >;
+       };
+
+       pinctrl_uart4_rts: uart4rtsgrp {
+               fsl,pins = <
+                       /* SODIMM 222 */
+                       MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x184
+               >;
+       };
+};
+
+&pinctrl_gpio1 {
+       fsl,pins = <
+               /* SODIMM 206 */
+               MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4                       0x1c4
+       >;
+};
+
+&pinctrl_gpio_hog1 {
+       fsl,pins = <
+               /* SODIMM 88 */
+               MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20                       0x1c4
+               /* CPLD_int */
+               MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1                         0x1c4
+               /* CPLD_reset */
+               MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2                        0x1c4
+               /* SODIMM 94 */
+               MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3                        0x1c4
+               /* SODIMM 96 */
+               MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4                        0x1c4
+               /* CPLD_D[7] */
+               MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5                        0x1c4
+               /* CPLD_D[6] */
+               MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0                        0x1c4
+               /* CPLD_D[5] */
+               MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11                        0x1c4
+               /* CPLD_D[4] */
+               MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12                       0x1c4
+               /* CPLD_D[3] */
+               MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13                       0x1c4
+               /* CPLD_D[2] */
+               MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14                       0x1c4
+               /* CPLD_D[1] */
+               MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15                       0x1c4
+               /* CPLD_D[0] */
+               MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16                       0x1c4
+               /* KBD_intK */
+               MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27                       0x1c4
+               /* DISP_reset */
+               MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22                       0x1c4
+               /* KBD_intI */
+               MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23                       0x1c4
+               /* SODIMM 46 */
+               MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24                       0x1c4
+       >;
+};
+
+&pinctrl_uart1 {
+       fsl,pins = <
+               /* SODIMM 149 */
+               MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX                     0x1c4
+               /* SODIMM 147 */
+               MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX                      0x1c4
+               /* SODIMM 210 */
+               MX8MM_IOMUXC_UART3_RXD_UART1_DTE_RTS_B                  0x1c4
+               /* SODIMM 212 */
+               MX8MM_IOMUXC_UART3_TXD_UART1_DTE_CTS_B                  0x1c4
+       >;
+};
+
+&reg_usb_otg1_vbus {
+       /delete-property/ enable-active-high;
+       gpio = <&gpio1 12 GPIO_ACTIVE_LOW>;
+};
+
+&reg_usb_otg2_vbus {
+       /delete-property/ enable-active-high;
+       gpio = <&gpio1 14 GPIO_ACTIVE_LOW>;
+};
+
+&sai2 {
+       status = "disabled";
+};
+
+&uart1 {
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-0 = <&pinctrl_uart4 &pinctrl_uart4_rts>;
+       linux,rs485-enabled-at-boot-time;
+       rts-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&usbotg1 {
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usdhc2 {
+       status = "okay";
+};
index cce55c3..c557dbf 100644 (file)
        fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
        fsl,clkreq-unsupported;
        clocks = <&pcie0_refclk>;
+       clock-names = "ref";
        status = "okay";
 };
 
index f61e484..41d0de6 100644 (file)
        fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
        fsl,clkreq-unsupported;
        clocks = <&pcie0_refclk>;
+       clock-names = "ref";
        status = "okay";
 };
 
index 0236196..244ef8d 100644 (file)
        fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
        fsl,clkreq-unsupported;
        clocks = <&pcie0_refclk>;
+       clock-names = "ref";
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_bten>;
        cts-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
        rts-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 
        bluetooth {
index 7e72310..24737e8 100644 (file)
        fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
        fsl,clkreq-unsupported;
        clocks = <&pcie0_refclk>;
+       clock-names = "ref";
        status = "okay";
 };
 
        dtr-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
        dsr-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
        dcd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
        cts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
        rts-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_uart4>, <&pinctrl_uart4_gpio>;
        cts-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
        rts-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 };
 
                >;
        };
 };
-
-&cpu_alert0 {
-       temperature = <95000>;
-       hysteresis = <2000>;
-       type = "passive";
-};
-
-&cpu_crit0 {
-       temperature = <105000>;
-       hysteresis = <2000>;
-       type = "critical";
-};
index edf0c7a..407ab45 100644 (file)
                                gw,voltage-divider-ohms = <10000 10000>;
                        };
 
+                       channel@9c {
+                               gw,mode = <2>;
+                               reg = <0x9c>;
+                               label = "vdd_5p0";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+
                        channel@a2 {
                                gw,mode = <2>;
                                reg = <0xa2>;
 &pcie_phy {
        fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
        fsl,clkreq-unsupported;
-       clocks = <&clk IMX8MM_CLK_DUMMY>;
+       clocks = <&pcie0_refclk>;
+       clock-names = "ref";
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_pcie0>;
        reset-gpio = <&gpio4 5 GPIO_ACTIVE_LOW>;
        clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>,
-                <&clk IMX8MM_CLK_DUMMY>, <&pcie0_refclk>;
-       clock-names = "pcie", "pcie_aux", "pcie_phy", "pcie_bus";
+                <&pcie0_refclk>;
+       clock-names = "pcie", "pcie_aux", "pcie_bus";
        assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
                          <&clk IMX8MM_CLK_PCIE1_CTRL>;
        assigned-clock-rates = <10000000>, <250000000>;
        pinctrl-0 = <&pinctrl_uart1>, <&pinctrl_uart1_gpio>;
        rts-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
        cts-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 };
 
        pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
        rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
        cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 
        bluetooth {
        dtr-gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;
        dsr-gpios = <&gpio4 4 GPIO_ACTIVE_LOW>;
        dcd-gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 };
 
index 1deb2ea..a7dae9b 100644 (file)
        fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
        fsl,clkreq-unsupported;
        clocks = <&pcie0_refclk>;
+       clock-names = "ref";
        status = "okay";
 };
 
index aca5ae0..c2a5c2f 100644 (file)
        status = "okay";
 };
 
-/* VERDIN I2S_1 */
+/* Verdin I2S_1 */
 &sai2 {
        status = "okay";
 };
index 3e06a6c..017db9e 100644 (file)
        };
 };
 
-/* On-module Wi-Fi */
-&usdhc3 {
-       bus-width = <4>;
-       keep-power-in-suspend;
-       non-removable;
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
-       pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_wifi_ctrl>;
-       pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_wifi_ctrl>;
-       pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_wifi_ctrl>;
-       vmmc-supply = <&reg_wifi_en>;
-       status = "okay";
-};
-
 &gpio3 {
        gpio-line-names = "SODIMM_52",
                          "SODIMM_54",
                          "SODIMM_135",
                          "SODIMM_129";
 };
+
+/* On-module Wi-Fi */
+&usdhc3 {
+       bus-width = <4>;
+       keep-power-in-suspend;
+       non-removable;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>, <&pinctrl_wifi_ctrl>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>, <&pinctrl_wifi_ctrl>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>, <&pinctrl_wifi_ctrl>;
+       vmmc-supply = <&reg_wifi_en>;
+       status = "okay";
+};
index 0d84d29..eafa88d 100644 (file)
@@ -86,7 +86,7 @@
                regulator-boot-on;
                regulator-max-microvolt = <3300000>;
                regulator-min-microvolt = <3300000>;
-               regulator-name = "+V3.3_ETH";
+               regulator-name = "On-module +V3.3_ETH";
                startup-delay-us = <200000>;
        };
 
@@ -99,7 +99,7 @@
                pinctrl-0 = <&pinctrl_reg_usb1_en>;
                regulator-max-microvolt = <5000000>;
                regulator-min-microvolt = <5000000>;
-               regulator-name = "usb_otg1_vbus";
+               regulator-name = "USB_1_EN";
        };
 
        reg_usb_otg2_vbus: regulator-usb-otg2 {
                pinctrl-0 = <&pinctrl_reg_usb2_en>;
                regulator-max-microvolt = <5000000>;
                regulator-min-microvolt = <5000000>;
-               regulator-name = "usb_otg2_vbus";
+               regulator-name = "USB_2_EN";
        };
 
        reg_usdhc2_vmmc: regulator-usdhc2 {
                          "SODIMM_151",
                          "SODIMM_153";
 
-       ctrl_sleep_moci-hog {
+       ctrl-sleep-moci-hog {
                gpio-hog;
                /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
                gpios = <1 GPIO_ACTIVE_HIGH>;
                reg = <0x25>;
                sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
 
+               /*
+                * The bootloader is expected to switch on the I2C level shifter for the TLA2024 ADC
+                * behind this PMIC.
+                */
+
                regulators {
                        reg_vdd_soc: BUCK1 {
                                nxp,dvs-run-voltage = <850000>;
                                regulator-boot-on;
                                regulator-max-microvolt = <850000>;
                                regulator-min-microvolt = <800000>;
-                               regulator-name = "+VDD_SOC";
+                               regulator-name = "On-module +VDD_SOC (BUCK1)";
                                regulator-ramp-delay = <3125>;
                        };
 
                                regulator-boot-on;
                                regulator-max-microvolt = <950000>;
                                regulator-min-microvolt = <850000>;
-                               regulator-name = "+VDD_ARM";
+                               regulator-name = "On-module +VDD_ARM (BUCK2)";
                                regulator-ramp-delay = <3125>;
                        };
 
                                regulator-boot-on;
                                regulator-max-microvolt = <950000>;
                                regulator-min-microvolt = <850000>;
-                               regulator-name = "+VDD_GPU_VPU_DDR";
+                               regulator-name = "On-module +VDD_GPU_VPU_DDR (BUCK3)";
                        };
 
                        reg_vdd_3v3: BUCK4 {
                                regulator-boot-on;
                                regulator-max-microvolt = <3300000>;
                                regulator-min-microvolt = <3300000>;
-                               regulator-name = "+V3.3";
+                               regulator-name = "On-module +V3.3 (BUCK4)";
                        };
 
                        reg_vdd_1v8: BUCK5 {
                                regulator-boot-on;
                                regulator-max-microvolt = <1800000>;
                                regulator-min-microvolt = <1800000>;
-                               regulator-name = "PWR_1V8_MOCI";
+                               regulator-name = "PWR_1V8_MOCI (BUCK5)";
                        };
 
                        reg_nvcc_dram: BUCK6 {
                                regulator-boot-on;
                                regulator-max-microvolt = <1100000>;
                                regulator-min-microvolt = <1100000>;
-                               regulator-name = "+VDD_DDR";
+                               regulator-name = "On-module +VDD_DDR (BUCK6)";
                        };
 
                        reg_nvcc_snvs: LDO1 {
                                regulator-boot-on;
                                regulator-max-microvolt = <1800000>;
                                regulator-min-microvolt = <1800000>;
-                               regulator-name = "+V1.8_SNVS";
+                               regulator-name = "On-module +V1.8_SNVS (LDO1)";
                        };
 
                        reg_vdd_snvs: LDO2 {
                                regulator-boot-on;
                                regulator-max-microvolt = <900000>;
                                regulator-min-microvolt = <800000>;
-                               regulator-name = "+V0.8_SNVS";
+                               regulator-name = "On-module +V0.8_SNVS (LDO2)";
                        };
 
                        reg_vdda: LDO3 {
                                regulator-boot-on;
                                regulator-max-microvolt = <1800000>;
                                regulator-min-microvolt = <1800000>;
-                               regulator-name = "+V1.8A";
+                               regulator-name = "On-module +V1.8A (LDO3)";
                        };
 
                        reg_vdd_phy: LDO4 {
                                regulator-boot-on;
                                regulator-max-microvolt = <900000>;
                                regulator-min-microvolt = <900000>;
-                               regulator-name = "+V0.9_MIPI";
+                               regulator-name = "On-module +V0.9_MIPI (LDO4)";
                        };
 
                        reg_nvcc_sd: LDO5 {
                                regulator-max-microvolt = <3300000>;
                                regulator-min-microvolt = <1800000>;
-                               regulator-name = "+V3.3_1.8_SD";
+                               regulator-name = "On-module +V3.3_1.8_SD (LDO5)";
                        };
                };
        };
 
        atmel_mxt_ts: touch@4a {
                compatible = "atmel,maxtouch";
-               /* Verdin GPIO_9_DSI */
-               /* (TOUCH_INT#, SODIMM 17, also routed to SN65dsi83 IRQ albeit currently unused) */
+               /*
+                * Verdin GPIO_9_DSI
+                * (TOUCH_INT#, SODIMM 17, also routed to SN65DSI83 IRQ albeit currently unused)
+                */
                interrupt-parent = <&gpio3>;
                interrupts = <15 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-names = "default";
        #pwm-cells = <3>;
 };
 
-/* VERDIN I2S_1 */
+/* Verdin I2S_1 */
 &sai2 {
        #sound-dai-cells = <0>;
        assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
        uart-has-rtscts;
 };
 
-/* Verdin UART_4 */
 /*
+ * Verdin UART_4
  * Resource allocated to M4 by default, must not be accessed from Cortex-A35 or you get an OOPS
  */
 &uart4 {
        bus-width = <4>;
        cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
        disable-wp;
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
        pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_cd>;
        pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_cd>;
        pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_cd>;
+       pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_cd_sleep>;
        vmmc-supply = <&reg_usdhc2_vmmc>;
 };
 
 
        pinctrl_can1_int: can1intgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6              0x1c4>; /* CAN_1_SPI_INT#_1.8V */
+                       <MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6              0x146>; /* CAN_1_SPI_INT#_1.8V */
        };
 
        pinctrl_can2_int: can2intgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7              0x1c4>; /* CAN_2_SPI_INT#_1.8V */
+                       <MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7              0x106>; /* CAN_2_SPI_INT#_1.8V, unused */
        };
 
        pinctrl_ctrl_sleep_moci: ctrlsleepmocigrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1                0x1c4>; /* SODIMM 256 */
+                       <MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1                0x106>; /* SODIMM 256 */
        };
 
        pinctrl_ecspi2: ecspi2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK           0x4>,   /* SODIMM 196 */
-                       <MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI           0x4>,   /* SODIMM 200 */
-                       <MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO           0x1c4>, /* SODIMM 198 */
-                       <MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13             0x1c4>; /* SODIMM 202 */
+                       <MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO           0x6>,   /* SODIMM 198 */
+                       <MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI           0x6>,   /* SODIMM 200 */
+                       <MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK           0x6>,   /* SODIMM 196 */
+                       <MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13             0x6>;   /* SODIMM 202 */
        };
 
        pinctrl_ecspi3: ecspi3grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK             0x4>,   /* CAN_SPI_SCK_1.8V */
-                       <MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI             0x4>,   /* CAN_SPI_MOSI_1.8V */
-                       <MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO             0x1c4>, /* CAN_SPI_MISO_1.8V */
-                       <MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25              0x1c4>, /* CAN_1_SPI_CS_1.8V# */
-                       <MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5              0x1c4>; /* CAN_2_SPI_CS#_1.8V */
+                       <MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5              0x146>, /* CAN_2_SPI_CS#_1.8V */
+                       <MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK             0x6>,   /* CAN_SPI_SCK_1.8V */
+                       <MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI             0x6>,   /* CAN_SPI_MOSI_1.8V */
+                       <MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO             0x6>,   /* CAN_SPI_MISO_1.8V */
+                       <MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25              0x6>;   /* CAN_1_SPI_CS_1.8V# */
        };
 
        pinctrl_fec1: fec1grp {
                fsl,pins =
                        <MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                0x3>,
                        <MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO              0x3>,
-                       <MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3          0x1f>,
-                       <MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2          0x1f>,
-                       <MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1          0x1f>,
-                       <MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0          0x1f>,
-                       <MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3          0x91>,
-                       <MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2          0x91>,
-                       <MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1          0x91>,
                        <MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0          0x91>,
-                       <MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC          0x1f>,
+                       <MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1          0x91>,
+                       <MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2          0x91>,
+                       <MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3          0x91>,
                        <MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC          0x91>,
                        <MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL    0x91>,
+                       <MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0          0x1f>,
+                       <MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1          0x1f>,
+                       <MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2          0x1f>,
+                       <MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3          0x1f>,
+                       <MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC          0x1f>,
                        <MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL    0x1f>,
-                       <MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10             0x1c4>;
+                       <MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10             0x146>;
        };
 
        pinctrl_fec1_sleep: fec1-sleepgrp {
                fsl,pins =
                        <MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                0x3>,
                        <MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO              0x3>,
-                       <MX8MM_IOMUXC_ENET_TD3_GPIO1_IO18               0x1f>,
-                       <MX8MM_IOMUXC_ENET_TD2_GPIO1_IO19               0x1f>,
-                       <MX8MM_IOMUXC_ENET_TD1_GPIO1_IO20               0x1f>,
-                       <MX8MM_IOMUXC_ENET_TD0_GPIO1_IO21               0x1f>,
-                       <MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3          0x91>,
-                       <MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2          0x91>,
-                       <MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1          0x91>,
                        <MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0          0x91>,
-                       <MX8MM_IOMUXC_ENET_TXC_GPIO1_IO23               0x1f>,
+                       <MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1          0x91>,
+                       <MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2          0x91>,
+                       <MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3          0x91>,
                        <MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC          0x91>,
                        <MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL    0x91>,
+                       <MX8MM_IOMUXC_ENET_TD0_GPIO1_IO21               0x1f>,
+                       <MX8MM_IOMUXC_ENET_TD1_GPIO1_IO20               0x1f>,
+                       <MX8MM_IOMUXC_ENET_TD2_GPIO1_IO19               0x1f>,
+                       <MX8MM_IOMUXC_ENET_TD3_GPIO1_IO18               0x1f>,
+                       <MX8MM_IOMUXC_ENET_TXC_GPIO1_IO23               0x1f>,
                        <MX8MM_IOMUXC_ENET_TX_CTL_GPIO1_IO22            0x1f>,
-                       <MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10             0x184>;
+                       <MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10             0x106>;
        };
 
        pinctrl_flexspi0: flexspi0grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK              0x1c2>, /* SODIMM 52 */
-                       <MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B           0x82>,  /* SODIMM 54 */
-                       <MX8MM_IOMUXC_NAND_CE1_B_QSPI_A_SS1_B           0x82>,  /* SODIMM 64 */
-                       <MX8MM_IOMUXC_NAND_DQS_QSPI_A_DQS               0x82>,  /* SODIMM 66 */
-                       <MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0          0x82>,  /* SODIMM 56 */
-                       <MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1          0x82>,  /* SODIMM 58 */
-                       <MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2          0x82>,  /* SODIMM 60 */
-                       <MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3          0x82>;  /* SODIMM 62 */
+                       <MX8MM_IOMUXC_NAND_ALE_QSPI_A_SCLK              0x106>, /* SODIMM 52 */
+                       <MX8MM_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B           0x106>, /* SODIMM 54 */
+                       <MX8MM_IOMUXC_NAND_CE1_B_QSPI_A_SS1_B           0x106>, /* SODIMM 64 */
+                       <MX8MM_IOMUXC_NAND_DATA00_QSPI_A_DATA0          0x106>, /* SODIMM 56 */
+                       <MX8MM_IOMUXC_NAND_DATA01_QSPI_A_DATA1          0x106>, /* SODIMM 58 */
+                       <MX8MM_IOMUXC_NAND_DATA02_QSPI_A_DATA2          0x106>, /* SODIMM 60 */
+                       <MX8MM_IOMUXC_NAND_DATA03_QSPI_A_DATA3          0x106>, /* SODIMM 62 */
+                       <MX8MM_IOMUXC_NAND_DQS_QSPI_A_DQS               0x106>; /* SODIMM 66 */
        };
 
        pinctrl_gpio1: gpio1grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4              0x184>; /* SODIMM 206 */
+                       <MX8MM_IOMUXC_NAND_CE3_B_GPIO3_IO4              0x106>; /* SODIMM 206 */
        };
 
        pinctrl_gpio2: gpio2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5           0x1c4>; /* SODIMM 208 */
+                       <MX8MM_IOMUXC_SPDIF_EXT_CLK_GPIO5_IO5           0x106>; /* SODIMM 208 */
        };
 
        pinctrl_gpio3: gpio3grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_UART3_RXD_GPIO5_IO26              0x184>; /* SODIMM 210 */
+                       <MX8MM_IOMUXC_UART3_RXD_GPIO5_IO26              0x106>; /* SODIMM 210 */
        };
 
        pinctrl_gpio4: gpio4grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_UART3_TXD_GPIO5_IO27              0x184>; /* SODIMM 212 */
+                       <MX8MM_IOMUXC_UART3_TXD_GPIO5_IO27              0x106>; /* SODIMM 212 */
        };
 
        pinctrl_gpio5: gpio5grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0              0x184>; /* SODIMM 216 */
+                       <MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0              0x106>; /* SODIMM 216 */
        };
 
        pinctrl_gpio6: gpio6grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11             0x184>; /* SODIMM 218 */
+                       <MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11             0x106>; /* SODIMM 218 */
        };
 
        pinctrl_gpio7: gpio7grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8              0x184>; /* SODIMM 220 */
+                       <MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8              0x106>; /* SODIMM 220 */
        };
 
        pinctrl_gpio8: gpio8grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9              0x184>; /* SODIMM 222 */
+                       <MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9              0x106>; /* SODIMM 222 */
        };
 
        /* Verdin GPIO_9_DSI (pulled-up as active-low) */
        pinctrl_gpio_9_dsi: gpio9dsigrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15              0x1c4>; /* SODIMM 17 */
+                       <MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15              0x146>; /* SODIMM 17 */
        };
 
-       /* Verdin GPIO_10_DSI */
+       /* Verdin GPIO_10_DSI (pulled-up as active-low) */
        pinctrl_gpio_10_dsi: gpio10dsigrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_CE2_B_GPIO3_IO3              0x1c4>; /* SODIMM 21 */
+                       <MX8MM_IOMUXC_NAND_CE2_B_GPIO3_IO3              0x146>; /* SODIMM 21 */
        };
 
        pinctrl_gpio_hog1: gpiohog1grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20              0x1c4>, /* SODIMM 88 */
-                       <MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1                0x1c4>, /* SODIMM 90 */
-                       <MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2               0x1c4>, /* SODIMM 92 */
-                       <MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3               0x1c4>, /* SODIMM 94 */
-                       <MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4               0x1c4>, /* SODIMM 96 */
-                       <MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5               0x1c4>, /* SODIMM 100 */
-                       <MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0               0x1c4>, /* SODIMM 102 */
-                       <MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11               0x1c4>, /* SODIMM 104 */
-                       <MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12              0x1c4>, /* SODIMM 106 */
-                       <MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13              0x1c4>, /* SODIMM 108 */
-                       <MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14              0x1c4>, /* SODIMM 112 */
-                       <MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15              0x1c4>, /* SODIMM 114 */
-                       <MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16              0x1c4>, /* SODIMM 116 */
-                       <MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18              0x1c4>, /* SODIMM 118 */
-                       <MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10              0x1c4>; /* SODIMM 120 */
+                       <MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20              0x106>, /* SODIMM 88 */
+                       <MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1                0x106>, /* SODIMM 90 */
+                       <MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2               0x106>, /* SODIMM 92 */
+                       <MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3               0x106>, /* SODIMM 94 */
+                       <MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4               0x106>, /* SODIMM 96 */
+                       <MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5               0x106>, /* SODIMM 100 */
+                       <MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0               0x106>, /* SODIMM 102 */
+                       <MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11               0x106>, /* SODIMM 104 */
+                       <MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12              0x106>, /* SODIMM 106 */
+                       <MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13              0x106>, /* SODIMM 108 */
+                       <MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14              0x106>, /* SODIMM 112 */
+                       <MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15              0x106>, /* SODIMM 114 */
+                       <MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16              0x106>, /* SODIMM 116 */
+                       <MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18              0x106>, /* SODIMM 118 */
+                       <MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10              0x106>; /* SODIMM 120 */
        };
 
        pinctrl_gpio_hog2: gpiohog2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2               0x1c4>; /* SODIMM 91 */
+                       <MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2               0x106>; /* SODIMM 91 */
        };
 
        pinctrl_gpio_hog3: gpiohog3grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13             0x1c4>, /* SODIMM 157 */
-                       <MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15             0x1c4>; /* SODIMM 187 */
+                       <MX8MM_IOMUXC_GPIO1_IO13_GPIO1_IO13             0x146>, /* SODIMM 157 */
+                       <MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15             0x146>; /* SODIMM 187 */
        };
 
        pinctrl_gpio_keys: gpiokeysgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28              0x1c4>; /* SODIMM 252 */
+                       <MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28              0x146>; /* SODIMM 252 */
        };
 
        /* On-module I2C */
        pinctrl_i2c1: i2c1grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL                 0x400001c6>,    /* PMIC_I2C_SCL */
-                       <MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                 0x400001c6>;    /* PMIC_I2C_SDA */
+                       <MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL                 0x40000146>,    /* PMIC_I2C_SCL */
+                       <MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                 0x40000146>;    /* PMIC_I2C_SDA */
        };
 
        pinctrl_i2c1_gpio: i2c1gpiogrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14               0x400001c6>,    /* PMIC_I2C_SCL */
-                       <MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15               0x400001c6>;    /* PMIC_I2C_SDA */
+                       <MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14               0x146>, /* PMIC_I2C_SCL */
+                       <MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15               0x146>; /* PMIC_I2C_SDA */
        };
 
        /* Verdin I2C_4_CSI */
        pinctrl_i2c2: i2c2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL                 0x400001c6>,    /* SODIMM 55 */
-                       <MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA                 0x400001c6>;    /* SODIMM 53 */
+                       <MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL                 0x40000146>,    /* SODIMM 55 */
+                       <MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA                 0x40000146>;    /* SODIMM 53 */
        };
 
        pinctrl_i2c2_gpio: i2c2gpiogrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16               0x400001c6>,    /* SODIMM 55 */
-                       <MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17               0x400001c6>;    /* SODIMM 53 */
+                       <MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16               0x146>, /* SODIMM 55 */
+                       <MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17               0x146>; /* SODIMM 53 */
        };
 
        /* Verdin I2C_2_DSI */
        pinctrl_i2c3: i2c3grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL                 0x400001c6>,    /* SODIMM 95 */
-                       <MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA                 0x400001c6>;    /* SODIMM 93 */
+                       <MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL                 0x40000146>,    /* SODIMM 95 */
+                       <MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA                 0x40000146>;    /* SODIMM 93 */
        };
 
        pinctrl_i2c3_gpio: i2c3gpiogrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18               0x400001c6>,    /* SODIMM 95 */
-                       <MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19               0x400001c6>;    /* SODIMM 93 */
+                       <MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18               0x146>, /* SODIMM 95 */
+                       <MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19               0x146>; /* SODIMM 93 */
        };
 
        /* Verdin I2C_1 */
        pinctrl_i2c4: i2c4grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL                 0x400001c6>,    /* SODIMM 14 */
-                       <MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA                 0x400001c6>;    /* SODIMM 12 */
+                       <MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL                 0x40000146>,    /* SODIMM 14 */
+                       <MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA                 0x40000146>;    /* SODIMM 12 */
        };
 
        pinctrl_i2c4_gpio: i2c4gpiogrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20               0x400001c6>,    /* SODIMM 14 */
-                       <MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21               0x400001c6>;    /* SODIMM 12 */
+                       <MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20               0x146>, /* SODIMM 14 */
+                       <MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21               0x146>; /* SODIMM 12 */
        };
 
        /* Verdin I2S_2_BCLK (TOUCH_RESET#) */
        pinctrl_i2s_2_bclk_touch_reset: i2s2bclktouchresetgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23              0x184>; /* SODIMM 42 */
+                       <MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23              0x6>;   /* SODIMM 42 */
        };
 
        /* Verdin I2S_2_D_OUT shared with SAI5 */
        pinctrl_i2s_2_d_out_dsi_1_bkl_en: i2s2doutdsi1bklengrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24              0x184>; /* SODIMM 46 */
+                       <MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24              0x6>;   /* SODIMM 46 */
        };
 
        pinctrl_pcie0: pcie0grp {
 
        pinctrl_pmic: pmicirqgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3              0x41>;  /* PMIC_INT# */
+                       <MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3              0x141>; /* PMIC_INT# */
        };
 
        /* Verdin PWM_3_DSI shared with GPIO1_IO1 */
        /* Verdin PWM_3_DSI (pulled-down as active-high) shared with PWM1_OUT */
        pinctrl_pwm_3_dsi_hpd_gpio: pwm3dsihpdgpiogrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1              0x184>; /* SODIMM 19 */
+                       <MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1              0x106>; /* SODIMM 19 */
        };
 
        pinctrl_reg_eth: regethgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SD2_WP_GPIO2_IO20                 0x184>; /* PMIC_EN_ETH */
+                       <MX8MM_IOMUXC_SD2_WP_GPIO2_IO20                 0x146>; /* PMIC_EN_ETH */
        };
 
        pinctrl_reg_usb1_en: regusb1engrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12             0x184>; /* SODIMM 155 */
+                       <MX8MM_IOMUXC_GPIO1_IO12_GPIO1_IO12             0x106>; /* SODIMM 155 */
        };
 
        pinctrl_reg_usb2_en: regusb2engrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14             0x184>; /* SODIMM 185 */
+                       <MX8MM_IOMUXC_GPIO1_IO14_GPIO1_IO14             0x106>; /* SODIMM 185 */
        };
 
        pinctrl_sai2: sai2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC            0xd6>,  /* SODIMM 32 */
-                       <MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK             0xd6>,  /* SODIMM 30 */
-                       <MX8MM_IOMUXC_SAI2_MCLK_SAI2_MCLK               0xd6>,  /* SODIMM 38 */
-                       <MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0           0xd6>,  /* SODIMM 36 */
-                       <MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0           0xd6>;  /* SODIMM 34 */
+                       <MX8MM_IOMUXC_SAI2_MCLK_SAI2_MCLK               0x6>,   /* SODIMM 38 */
+                       <MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK             0x6>,   /* SODIMM 30 */
+                       <MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC            0x6>,   /* SODIMM 32 */
+                       <MX8MM_IOMUXC_SAI2_RXD0_SAI2_RX_DATA0           0x6>,   /* SODIMM 36 */
+                       <MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0           0x6>;   /* SODIMM 34 */
        };
 
        pinctrl_sai5: sai5grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0           0xd6>,  /* SODIMM 48 */
-                       <MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC            0xd6>,  /* SODIMM 44 */
-                       <MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK            0xd6>,  /* SODIMM 42 */
-                       <MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0           0xd6>;  /* SODIMM 46 */
+                       <MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0           0x6>,   /* SODIMM 48 */
+                       <MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC            0x6>,   /* SODIMM 44 */
+                       <MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK            0x6>,   /* SODIMM 42 */
+                       <MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0           0x6>;   /* SODIMM 46 */
        };
 
        /* control signal for optional ATTPM20P or SE050 */
        pinctrl_pmic_tpm_ena: pmictpmenagrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19              0x1c4>; /* PMIC_TPM_ENA */
+                       <MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19              0x106>; /* PMIC_TPM_ENA */
        };
 
        pinctrl_tsp: tspgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6               0x140>, /* SODIMM 148 */
-                       <MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7               0x140>, /* SODIMM 152 */
-                       <MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8               0x140>, /* SODIMM 154 */
-                       <MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9               0x140>, /* SODIMM 174 */
-                       <MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17              0x140>; /* SODIMM 150 */
+                       <MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6               0x6>,   /* SODIMM 148 */
+                       <MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7               0x6>,   /* SODIMM 152 */
+                       <MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8               0x6>,   /* SODIMM 154 */
+                       <MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9               0x146>, /* SODIMM 174 */
+                       <MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17              0x6>;   /* SODIMM 150 */
        };
 
        pinctrl_uart1: uart1grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX            0x1c4>, /* SODIMM 149 */
-                       <MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX             0x1c4>; /* SODIMM 147 */
+                       <MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX             0x146>, /* SODIMM 147 */
+                       <MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX            0x146>; /* SODIMM 149 */
        };
 
        pinctrl_uart2: uart2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX            0x1c4>, /* SODIMM 129 */
-                       <MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX             0x1c4>, /* SODIMM 131 */
-                       <MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B          0x1c4>, /* SODIMM 133 */
-                       <MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B          0x1c4>; /* SODIMM 135 */
+                       <MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B          0x146>, /* SODIMM 133 */
+                       <MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B          0x146>, /* SODIMM 135 */
+                       <MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX             0x146>, /* SODIMM 131 */
+                       <MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX            0x146>; /* SODIMM 129 */
        };
 
        pinctrl_uart3: uart3grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX          0x1c4>, /* SODIMM 137 */
-                       <MX8MM_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX          0x1c4>, /* SODIMM 139 */
-                       <MX8MM_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B       0x1c4>, /* SODIMM 141 */
-                       <MX8MM_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B        0x1c4>; /* SODIMM 143 */
+                       <MX8MM_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B       0x146>, /* SODIMM 141 */
+                       <MX8MM_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX          0x146>, /* SODIMM 139 */
+                       <MX8MM_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX          0x146>, /* SODIMM 137 */
+                       <MX8MM_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B        0x146>; /* SODIMM 143 */
        };
 
        pinctrl_uart4: uart4grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX            0x1c4>, /* SODIMM 151 */
-                       <MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX            0x1c4>; /* SODIMM 153 */
+                       <MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX            0x146>, /* SODIMM 151 */
+                       <MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX            0x146>; /* SODIMM 153 */
        };
 
        pinctrl_usdhc1: usdhc1grp {
 
        pinctrl_usdhc2_cd: usdhc2cdgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12               0x1c4>; /* SODIMM 84 */
+                       <MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12               0x6>;   /* SODIMM 84 */
+       };
+
+       pinctrl_usdhc2_cd_sleep: usdhc2cdslpgrp {
+               fsl,pins =
+                       <MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12               0x0>;   /* SODIMM 84 */
        };
 
        pinctrl_usdhc2_pwr_en: usdhc2pwrengrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_CLE_GPIO3_IO5                0x184>; /* SODIMM 76 */
+                       <MX8MM_IOMUXC_NAND_CLE_GPIO3_IO5                0x6>;   /* SODIMM 76 */
        };
 
+       /*
+        * Note: Due to ERR050080 we use discrete external on-module resistors pulling-up to the
+        * on-module +V3.3_1.8_SD (LDO5) rail and explicitly disable the internal pull-ups here.
+        */
        pinctrl_usdhc2: usdhc2grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x190>, /* SODIMM 78 */
-                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x1d0>, /* SODIMM 74 */
-                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x1d0>, /* SODIMM 80 */
-                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x1d0>, /* SODIMM 82 */
-                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x1d0>, /* SODIMM 70 */
-                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x1d0>, /* SODIMM 72 */
-                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x1d0>;
+                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x10>,
+                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x90>,  /* SODIMM 78 */
+                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x90>,  /* SODIMM 74 */
+                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x90>,  /* SODIMM 80 */
+                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x90>,  /* SODIMM 82 */
+                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x90>,  /* SODIMM 70 */
+                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x90>;  /* SODIMM 72 */
        };
 
        pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x194>,
-                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x1d4>,
-                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x1d4>,
-                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x1d4>,
-                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x1d4>,
-                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x1d4>,
-                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x1d0>;
+                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x10>,
+                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x94>,
+                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x94>,
+                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x94>,
+                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x94>,
+                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x94>,
+                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x94>;
        };
 
        pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x196>,
-                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x1d6>,
-                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x1d6>,
-                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x1d6>,
-                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x1d6>,
-                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x1d6>,
-                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x1d0>;
+                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x10>,
+                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x96>,
+                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x96>,
+                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x96>,
+                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x96>,
+                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x96>,
+                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x96>;
+       };
+
+       /* Avoid backfeeding with removed card power */
+       pinctrl_usdhc2_sleep: usdhc2slpgrp {
+               fsl,pins =
+                       <MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT         0x0>,
+                       <MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                0x0>,
+                       <MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                0x0>,
+                       <MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0            0x0>,
+                       <MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1            0x0>,
+                       <MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2            0x0>,
+                       <MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3            0x0>;
        };
 
-       /* On-module Wi-Fi/BT or type specific SDHC interface */
-       /* (e.g. on X52 extension slot of Verdin Development Board) */
+       /*
+        * On-module Wi-Fi/BT or type specific SDHC interface
+        * (e.g. on X52 extension slot of Verdin Development Board)
+        */
        pinctrl_usdhc3: usdhc3grp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK              0x190>,
-                       <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD              0x1d0>,
-                       <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0          0x1d0>,
-                       <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1          0x1d0>,
-                       <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2          0x1d0>,
-                       <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3          0x1d0>;
+                       <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0          0x150>,
+                       <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1          0x150>,
+                       <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2          0x150>,
+                       <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3          0x150>,
+                       <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK              0x150>,
+                       <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD              0x150>;
        };
 
        pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK              0x194>,
-                       <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD              0x1d4>,
-                       <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0          0x1d4>,
-                       <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1          0x1d4>,
-                       <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2          0x1d4>,
-                       <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3          0x1d4>;
+                       <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0          0x154>,
+                       <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1          0x154>,
+                       <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2          0x154>,
+                       <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3          0x154>,
+                       <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK              0x154>,
+                       <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD              0x154>;
        };
 
        pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK              0x196>,
-                       <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD              0x1d6>,
-                       <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0          0x1d6>,
-                       <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1          0x1d6>,
-                       <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2          0x1d6>,
-                       <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3          0x1d6>;
+                       <MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0          0x156>,
+                       <MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1          0x156>,
+                       <MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2          0x156>,
+                       <MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3          0x156>,
+                       <MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK              0x156>,
+                       <MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD              0x156>;
        };
 
        pinctrl_wdog: wdoggrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B           0xc6>;  /* PMIC_WDI */
+                       <MX8MM_IOMUXC_GPIO1_IO02_WDOG1_WDOG_B           0x166>; /* PMIC_WDI */
        };
 
        pinctrl_wifi_ctrl: wifictrlgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16           0x1c4>, /* WIFI_WKUP_BT */
-                       <MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9               0x1c4>, /* WIFI_W_WKUP_HOST */
-                       <MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20               0x1c4>; /* WIFI_WKUP_WLAN */
+                       <MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16           0x46>,  /* WIFI_WKUP_BT */
+                       <MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9               0x146>, /* WIFI_W_WKUP_HOST */
+                       <MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20               0x46>;  /* WIFI_WKUP_WLAN */
        };
 
        pinctrl_wifi_i2s: bti2sgrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI1_RXD4_SAI6_TX_BCLK            0xd6>,  /* WIFI_TX_BCLK */
-                       <MX8MM_IOMUXC_SAI1_RXD5_SAI6_TX_DATA0           0xd6>,  /* WIFI_TX_DATA0 */
-                       <MX8MM_IOMUXC_SAI1_RXD6_SAI6_TX_SYNC            0xd6>,  /* WIFI_TX_SYNC */
-                       <MX8MM_IOMUXC_SAI1_TXD5_SAI6_RX_DATA0           0xd6>;  /* WIFI_RX_DATA0 */
+                       <MX8MM_IOMUXC_SAI1_RXD4_SAI6_TX_BCLK            0x6>,   /* WIFI_TX_BCLK */
+                       <MX8MM_IOMUXC_SAI1_RXD5_SAI6_TX_DATA0           0x6>,   /* WIFI_TX_DATA0 */
+                       <MX8MM_IOMUXC_SAI1_RXD6_SAI6_TX_SYNC            0x6>,   /* WIFI_TX_SYNC */
+                       <MX8MM_IOMUXC_SAI1_TXD5_SAI6_RX_DATA0           0x6>;   /* WIFI_RX_DATA0 */
        };
 
        pinctrl_wifi_pwr_en: wifipwrengrp {
                fsl,pins =
-                       <MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25              0x184>; /* PMIC_EN_WIFI */
+                       <MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25              0x6>;   /* PMIC_EN_WIFI */
        };
 };
index 1ee0567..1bf0704 100644 (file)
                                clocks = <&clk IMX8MM_CLK_PWM1_ROOT>,
                                        <&clk IMX8MM_CLK_PWM1_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MM_CLK_PWM2_ROOT>,
                                         <&clk IMX8MM_CLK_PWM2_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MM_CLK_PWM3_ROOT>,
                                         <&clk IMX8MM_CLK_PWM3_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MM_CLK_PWM4_ROOT>,
                                         <&clk IMX8MM_CLK_PWM4_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
index 0f40b43..02f37dc 100644 (file)
        pinctrl-0 = <&pinctrl_uart3>;
        assigned-clocks = <&clk IMX8MN_CLK_UART3>;
        assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>;
+       uart-has-rtscts;
        status = "okay";
 };
 
                fsl,pins = <
                        MX8MN_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX   0x40
                        MX8MN_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX   0x40
+                       MX8MN_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B        0x40
+                       MX8MN_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x40
                >;
        };
 
index c6a8ed6..fbbb336 100644 (file)
@@ -7,6 +7,7 @@
 /dts-v1/;
 
 #include "imx8mn-bsh-smm-s2-common.dtsi"
+#include <dt-bindings/sound/tlv320aic31xx.h>
 
 / {
        model = "BSH SMM S2 PRO";
                device_type = "memory";
                reg = <0x0 0x40000000 0x0 0x20000000>;
        };
+
+       sound-tlv320aic31xx {
+               compatible = "fsl,imx-audio-tlv320aic31xx";
+               model = "tlv320aic31xx-hifi";
+               audio-cpu = <&sai3>;
+               audio-codec = <&tlv320dac3101>;
+               audio-asrc = <&easrc>;
+               audio-routing =
+                       "Ext Spk", "SPL",
+                       "Ext Spk", "SPR";
+               mclk-id = <PLL_CLKIN_BCLK>;
+       };
+
+       vdd_input: vdd_input {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_input";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+};
+
+&easrc {
+       fsl,asrc-rate = <48000>;
+       fsl,asrc-format = <10>;
+       status = "okay";
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       tlv320dac3101: audio-codec@18 {
+               compatible = "ti,tlv320dac3101";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_dac_rst>;
+               reg = <0x18>;
+               #sound-dai-cells = <0>;
+               HPVDD-supply = <&buck4_reg>;
+               SPRVDD-supply = <&vdd_input>;
+               SPLVDD-supply = <&vdd_input>;
+               AVDD-supply = <&buck4_reg>;
+               IOVDD-supply = <&buck4_reg>;
+               DVDD-supply = <&buck5_reg>;
+               reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               ai31xx-micbias-vg = <MICBIAS_AVDDV>;
+               clocks = <&clk IMX8MN_CLK_SAI3_ROOT>;
+       };
+};
+
+&sai3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai3>;
+       assigned-clocks = <&clk IMX8MN_CLK_SAI3>;
+       assigned-clock-parents = <&clk IMX8MN_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <24576000>;
+       fsl,sai-mclk-direction-output;
+       status = "okay";
 };
 
 /* eMMC */
 };
 
 &iomuxc {
+       pinctrl_dac_rst: dacrstgrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_GPIO1_IO06_GPIO1_IO6               0x19 /* DAC_RST */
+               >;
+       };
+
+       pinctrl_espi2: espi2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK            0x082
+                       MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI            0x082
+                       MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO            0x082
+                       MX8MN_IOMUXC_ECSPI2_SS0_ECSPI2_SS0              0x040
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_I2C2_SCL_I2C2_SCL                  0x400000c3
+                       MX8MN_IOMUXC_I2C2_SDA_I2C2_SDA                  0x400000c3
+               >;
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_SAI3_TXFS_SAI3_TX_SYNC             0xd6
+                       MX8MN_IOMUXC_SAI3_TXC_SAI3_TX_BCLK              0xd6
+                       MX8MN_IOMUXC_SAI3_TXD_SAI3_TX_DATA0             0xd6
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        MX8MN_IOMUXC_SD1_CLK_USDHC1_CLK                 0x40000090
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts b/arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts
new file mode 100644 (file)
index 0000000..000e2c0
--- /dev/null
@@ -0,0 +1,114 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "imx8mn.dtsi"
+#include "imx8mn-evk.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       model = "NXP i.MX8MNano DDR3L EVK board";
+       compatible = "fsl,imx8mn-ddr3l-evk", "fsl,imx8mn";
+};
+
+&A53_0 {
+       cpu-supply = <&buck1>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck1>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck1>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck1>;
+};
+
+&i2c1 {
+       pmic: pmic@25 {
+               compatible = "nxp,pca9450b";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-name = "VDD_SOC_0V9";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4 {
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5: BUCK5 {
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-name = "NVCC_DRAM_1V35";
+                               regulator-min-microvolt = <1350000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-name = "NVCC_SNVS_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo2: LDO2 {
+                               regulator-name = "VDD_SNVS_0V8";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo3: LDO3 {
+                               regulator-name = "VDDA_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "VDD_PHY_1V2";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "NVCC_SD2";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
index b4225cf..4eb467d 100644 (file)
 
                regulators {
                        buck1: BUCK1{
-                               regulator-name = "BUCK1";
-                               regulator-min-microvolt = <600000>;
-                               regulator-max-microvolt = <2187500>;
+                               regulator-name = "VDD_SOC";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <950000>;
                                regulator-boot-on;
                                regulator-always-on;
                                regulator-ramp-delay = <3125>;
                        };
 
                        buck2: BUCK2 {
-                               regulator-name = "BUCK2";
-                               regulator-min-microvolt = <600000>;
-                               regulator-max-microvolt = <2187500>;
+                               regulator-name = "VDD_ARM_0V9";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1000000>;
                                regulator-boot-on;
                                regulator-always-on;
                                regulator-ramp-delay = <3125>;
                        };
 
                        buck4: BUCK4{
-                               regulator-name = "BUCK4";
-                               regulator-min-microvolt = <600000>;
-                               regulator-max-microvolt = <3400000>;
+                               regulator-name = "VDD_3V3";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        buck5: BUCK5{
-                               regulator-name = "BUCK5";
-                               regulator-min-microvolt = <600000>;
-                               regulator-max-microvolt = <3400000>;
+                               regulator-name = "VDD_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        buck6: BUCK6 {
-                               regulator-name = "BUCK6";
-                               regulator-min-microvolt = <600000>;
-                               regulator-max-microvolt = <3400000>;
+                               regulator-name = "NVCC_DRAM_1V1";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        ldo1: LDO1 {
-                               regulator-name = "LDO1";
-                               regulator-min-microvolt = <1600000>;
-                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "NVCC_SNVS_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        ldo2: LDO2 {
-                               regulator-name = "LDO2";
+                               regulator-name = "VDD_SNVS_0V8";
                                regulator-min-microvolt = <800000>;
-                               regulator-max-microvolt = <1150000>;
+                               regulator-max-microvolt = <800000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        ldo3: LDO3 {
-                               regulator-name = "LDO3";
-                               regulator-min-microvolt = <800000>;
-                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "VDDA_1V8";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        ldo4: LDO4 {
-                               regulator-name = "LDO4";
-                               regulator-min-microvolt = <800000>;
-                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "VDD_PHY_1V2";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
                                regulator-boot-on;
                                regulator-always-on;
                        };
 
                        ldo5: LDO5 {
-                               regulator-name = "LDO5";
+                               regulator-name = "NVCC_SD2";
                                regulator-min-microvolt = <1800000>;
                                regulator-max-microvolt = <3300000>;
                                regulator-boot-on;
index c3f1519..d1f6ccc 100644 (file)
        };
 };
 
+&flexspi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi>;
+       status = "okay";
+
+       flash0: flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-max-frequency = <166000000>;
+               spi-tx-bus-width = <4>;
+               spi-rx-bus-width = <4>;
+       };
+};
+
 &i2c1 {
        clock-frequency = <400000>;
        pinctrl-names = "default";
        status = "okay";
 };
 
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+       assigned-clocks = <&clk IMX8MN_CLK_UART3>;
+       assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_80M>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
 &usbotg1 {
        dr_mode = "otg";
        hnp-disable;
                >;
        };
 
+       pinctrl_flexspi: flexspigrp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_NAND_ALE_QSPI_A_SCLK               0x1c2
+                       MX8MN_IOMUXC_NAND_CE0_B_QSPI_A_SS0_B            0x82
+                       MX8MN_IOMUXC_NAND_DATA00_QSPI_A_DATA0           0x82
+                       MX8MN_IOMUXC_NAND_DATA01_QSPI_A_DATA1           0x82
+                       MX8MN_IOMUXC_NAND_DATA02_QSPI_A_DATA2           0x82
+                       MX8MN_IOMUXC_NAND_DATA03_QSPI_A_DATA3           0x82
+               >;
+       };
+
        pinctrl_gpio_led: gpioledgrp {
                fsl,pins = <
                        MX8MN_IOMUXC_NAND_READY_B_GPIO3_IO16    0x19
                >;
        };
 
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MN_IOMUXC_ECSPI1_SCLK_UART3_DCE_RX           0x140
+                       MX8MN_IOMUXC_ECSPI1_MOSI_UART3_DCE_TX           0x140
+                       MX8MN_IOMUXC_ECSPI1_SS0_UART3_DCE_RTS_B 0x140
+                       MX8MN_IOMUXC_ECSPI1_MISO_UART3_DCE_CTS_B        0x140
+               >;
+       };
+
        pinctrl_usdhc2_gpio: usdhc2gpiogrp {
                fsl,pins = <
                        MX8MN_IOMUXC_GPIO1_IO15_GPIO1_IO15      0x1c4
index 3c0e63d..367a232 100644 (file)
                                gw,voltage-divider-ohms = <10000 10000>;
                        };
 
+                       channel@9c {
+                               gw,mode = <2>;
+                               reg = <0x9c>;
+                               label = "vdd_5p0";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+
                        channel@a2 {
                                gw,mode = <2>;
                                reg = <0xa2>;
        pinctrl-0 = <&pinctrl_uart3>, <&pinctrl_uart3_gpio>;
        rts-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
        cts-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
+       uart-has-rtscts;
        status = "okay";
 
        bluetooth {
index 5c0ca24..e41e1d5 100644 (file)
                                clocks = <&clk IMX8MN_CLK_PWM1_ROOT>,
                                        <&clk IMX8MN_CLK_PWM1_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MN_CLK_PWM2_ROOT>,
                                         <&clk IMX8MN_CLK_PWM2_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MN_CLK_PWM3_ROOT>,
                                         <&clk IMX8MN_CLK_PWM3_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MN_CLK_PWM4_ROOT>,
                                         <&clk IMX8MN_CLK_PWM4_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                        };
 
                        usdhc1: mmc@30b40000 {
-                               compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
+                               compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b40000 0x10000>;
                                interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MN_CLK_IPG_ROOT>,
                        };
 
                        usdhc2: mmc@30b50000 {
-                               compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
+                               compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b50000 0x10000>;
                                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MN_CLK_IPG_ROOT>,
                        };
 
                        usdhc3: mmc@30b60000 {
-                               compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
+                               compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b60000 0x10000>;
                                interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MN_CLK_IPG_ROOT>,
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts b/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp-edimm2.2.dts
new file mode 100644 (file)
index 0000000..70a701a
--- /dev/null
@@ -0,0 +1,175 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2018 NXP
+ * Copyright (c) 2019 Engicam srl
+ * Copyright (c) 2020 Amarula Solutons(India)
+ */
+
+/dts-v1/;
+
+#include "imx8mp.dtsi"
+#include "imx8mp-icore-mx8mp.dtsi"
+#include <dt-bindings/usb/pd.h>
+
+/ {
+       model = "Engicam i.Core MX8M Plus EDIMM2.2 Starter Kit";
+       compatible = "engicam,icore-mx8mp-edimm2.2", "engicam,icore-mx8mp",
+                    "fsl,imx8mp";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       reg_usb1_vbus: regulator-usb1 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usb1>;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "usb1_host_vbus";
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "VSD_3V3";
+       };
+};
+
+/* Ethernet */
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@7 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       micrel,led-mode = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+/* console */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&usb3_phy0 {
+       status = "okay";
+};
+
+&usb3_0 {
+       status = "okay";
+};
+
+&usb_dwc3_0 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usb3_phy1 {
+       status = "okay";
+};
+
+&usb3_1 {
+       status = "okay";
+};
+
+&usb_dwc3_1 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* SDCARD */
+&usdhc2 {
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       pinctrl-names = "default" ;
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                             0x3
+                       MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO                           0x3
+                       MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0                       0x91
+                       MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1                       0x91
+                       MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2                       0x91
+                       MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3                       0x91
+                       MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK       0x91
+                       MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL                 0x91
+                       MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0                       0x1f
+                       MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1                       0x1f
+                       MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2                       0x1f
+                       MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3                       0x1f
+                       MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL                 0x1f
+                       MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK       0x1f
+                       MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07                            0x19
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX    0x49
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX    0x49
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX    0x140
+                       MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX    0x140
+                       MX8MP_IOMUXC_SD1_STROBE__UART3_DCE_CTS  0x140
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK        0x190
+                       MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD        0x1d0
+                       MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0    0x1d0
+                       MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1    0x1d0
+                       MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2    0x1d0
+                       MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3    0x1d0
+                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT 0xc1
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12       0x1c4
+               >;
+       };
+
+       pinctrl_reg_usb1: regusb1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14     0x19
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19    0x41
+               >;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-icore-mx8mp.dtsi
new file mode 100644 (file)
index 0000000..5116079
--- /dev/null
@@ -0,0 +1,186 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2018 NXP
+ * Copyright (c) 2019 Engicam srl
+ * Copyright (c) 2020 Amarula Solutons(India)
+ */
+
+/ {
+       compatible = "engicam,icore-mx8mp", "fsl,imx8mp";
+};
+
+&A53_0 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2>;
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pca9450: pmic@25 {
+               compatible = "nxp,pca9450c";
+               interrupt-parent = <&gpio3>;
+               interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               reg = <0x25>;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <720000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-name = "BUCK1";
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2  {
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1025000>;
+                               regulator-min-microvolt = <720000>;
+                               regulator-name = "BUCK2";
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-name = "BUCK4";
+                       };
+
+                       buck5: BUCK5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-min-microvolt = <1650000>;
+                               regulator-name = "BUCK5";
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1155000>;
+                               regulator-min-microvolt = <1045000>;
+                               regulator-name = "BUCK6";
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-min-microvolt = <1650000>;
+                               regulator-name = "LDO1";
+                       };
+
+                       ldo3: LDO3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1890000>;
+                               regulator-min-microvolt = <1710000>;
+                               regulator-name = "LDO3";
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "LDO5";
+                       };
+               };
+       };
+};
+
+/* EMMC */
+&usdhc3 {
+       bus-width = <8>;
+       non-removable;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL         0x400001c3
+                       MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA         0x400001c3
+               >;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_CE0_B__GPIO3_IO01       0x41
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK      0x190
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD      0x1d0
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0  0x1d0
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1  0x1d0
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2  0x1d0
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3  0x1d0
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4    0x1d0
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5   0x1d0
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6   0x1d0
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7     0x1d0
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE  0x190
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK      0x194
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD      0x1d4
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0  0x1d4
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1  0x1d4
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2  0x1d4
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3  0x1d4
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4    0x1d4
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5   0x1d4
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6   0x1d4
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7     0x1d4
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE  0x194
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK      0x196
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD      0x1d6
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0  0x1d6
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1  0x1d6
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2  0x1d6
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3  0x1d6
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4    0x1d6
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5   0x1d6
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6   0x1d6
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7     0x1d6
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE  0x196
+               >;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts b/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
new file mode 100644 (file)
index 0000000..101d311
--- /dev/null
@@ -0,0 +1,896 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 Gateworks Corporation
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+
+#include "imx8mp.dtsi"
+
+/ {
+       model = "Gateworks Venice GW74xx i.MX8MP board";
+       compatible = "gateworks,imx8mp-gw74xx", "fsl,imx8mp";
+
+       aliases {
+               ethernet0 = &eqos;
+               ethernet1 = &fec;
+               ethernet2 = &lan1;
+               ethernet3 = &lan2;
+               ethernet4 = &lan3;
+               ethernet5 = &lan4;
+               ethernet6 = &lan5;
+       };
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0x0 0x40000000 0 0x80000000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-0 {
+                       label = "user_pb";
+                       gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <BTN_0>;
+               };
+
+               key-1 {
+                       label = "user_pb1x";
+                       linux,code = <BTN_1>;
+                       interrupt-parent = <&gsc>;
+                       interrupts = <0>;
+               };
+
+               key-2 {
+                       label = "key_erased";
+                       linux,code = <BTN_2>;
+                       interrupt-parent = <&gsc>;
+                       interrupts = <1>;
+               };
+
+               key-3 {
+                       label = "eeprom_wp";
+                       linux,code = <BTN_3>;
+                       interrupt-parent = <&gsc>;
+                       interrupts = <2>;
+               };
+
+               key-4 {
+                       label = "tamper";
+                       linux,code = <BTN_4>;
+                       interrupt-parent = <&gsc>;
+                       interrupts = <5>;
+               };
+
+               key-5 {
+                       label = "switch_hold";
+                       linux,code = <BTN_5>;
+                       interrupt-parent = <&gsc>;
+                       interrupts = <7>;
+               };
+       };
+
+       led-controller {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               led-0 {
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-1 {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       pps {
+               compatible = "pps-gpio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pps>;
+               gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+       };
+
+       reg_usb2_vbus: regulator-usb2 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usb2>;
+               compatible = "regulator-fixed";
+               regulator-name = "usb_usb2_vbus";
+               gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       reg_can2_stby: regulator-can2-stby {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_can>;
+               regulator-name = "can2_stby";
+               gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       reg_wifi_en: regulator-wifi-en {
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_wifi>;
+               compatible = "regulator-fixed";
+               regulator-name = "wl";
+               gpio = <&gpio3 9 GPIO_ACTIVE_HIGH>;
+               startup-delay-us = <100>;
+               enable-active-high;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+};
+
+/* off-board header */
+&ecspi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi2>;
+       cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&eqos {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       phy-mode = "rgmii-id";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@0 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <0x0>;
+               };
+       };
+};
+
+&fec {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_fec>;
+       phy-mode = "rgmii-id";
+       local-mac-address = [00 00 00 00 00 00];
+       status = "okay";
+
+       fixed-link {
+               speed = <1000>;
+               full-duplex;
+       };
+};
+
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       xceiver-supply = <&reg_can2_stby>;
+       status = "okay";
+};
+
+&gpio1 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "dio0", "", "dio1", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio2 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "pcie3_wdis#", "", "", "pcie1_wdis@", "pcie2_wdis#", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio3 {
+       gpio-line-names =
+               "m2_gdis#", "", "", "", "", "", "", "m2_rst#",
+               "", "", "", "", "", "", "", "",
+               "m2_off#", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&gpio4 {
+       gpio-line-names =
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "m2_wdis#", "", "", "",
+               "", "", "", "", "", "", "", "uart_rs485";
+};
+
+&gpio5 {
+       gpio-line-names =
+               "uart_half", "uart_term", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "",
+               "", "", "", "", "", "", "", "";
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       gsc: gsc@20 {
+               compatible = "gw,gsc";
+               reg = <0x20>;
+               pinctrl-0 = <&pinctrl_gsc>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <20 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+
+               adc {
+                       compatible = "gw,gsc-adc";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       channel@6 {
+                               gw,mode = <0>;
+                               reg = <0x06>;
+                               label = "temp";
+                       };
+
+                       channel@8 {
+                               gw,mode = <1>;
+                               reg = <0x08>;
+                               label = "vdd_bat";
+                       };
+
+                       channel@82 {
+                               gw,mode = <2>;
+                               reg = <0x82>;
+                               label = "vdd_adc1";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+
+                       channel@84 {
+                               gw,mode = <2>;
+                               reg = <0x84>;
+                               label = "vdd_adc2";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+
+                       channel@86 {
+                               gw,mode = <2>;
+                               reg = <0x86>;
+                               label = "vdd_vin";
+                               gw,voltage-divider-ohms = <22100 1000>;
+                       };
+
+                       channel@88 {
+                               gw,mode = <2>;
+                               reg = <0x88>;
+                               label = "vdd_3p3";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+
+                       channel@8c {
+                               gw,mode = <2>;
+                               reg = <0x8c>;
+                               label = "vdd_2p5";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+
+                       channel@90 {
+                               gw,mode = <2>;
+                               reg = <0x90>;
+                               label = "vdd_soc";
+                       };
+
+                       channel@92 {
+                               gw,mode = <2>;
+                               reg = <0x92>;
+                               label = "vdd_arm";
+                       };
+
+                       channel@98 {
+                               gw,mode = <2>;
+                               reg = <0x98>;
+                               label = "vdd_1p8";
+                       };
+
+                       channel@9a {
+                               gw,mode = <2>;
+                               reg = <0x9a>;
+                               label = "vdd_1p2";
+                       };
+
+                       channel@9c {
+                               gw,mode = <2>;
+                               reg = <0x9c>;
+                               label = "vdd_dram";
+                       };
+
+                       channel@a2 {
+                               gw,mode = <2>;
+                               reg = <0xa2>;
+                               label = "vdd_gsc";
+                               gw,voltage-divider-ohms = <10000 10000>;
+                       };
+               };
+       };
+
+       gpio: gpio@23 {
+               compatible = "nxp,pca9555";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&gsc>;
+               interrupts = <4>;
+       };
+
+       pmic@25 {
+               compatible = "nxp,pca9450c";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <720000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <720000>;
+                               regulator-max-microvolt = <1025000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                       };
+
+                       BUCK4 {
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1650000>;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1045000>;
+                               regulator-max-microvolt = <1155000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1650000>;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <1710000>;
+                               regulator-max-microvolt = <1890000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+
+       eeprom@50 {
+               compatible = "atmel,24c02";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+
+       eeprom@51 {
+               compatible = "atmel,24c02";
+               reg = <0x51>;
+               pagesize = <16>;
+       };
+
+       eeprom@52 {
+               compatible = "atmel,24c02";
+               reg = <0x52>;
+               pagesize = <16>;
+       };
+
+       eeprom@53 {
+               compatible = "atmel,24c02";
+               reg = <0x53>;
+               pagesize = <16>;
+       };
+
+       rtc@68 {
+               compatible = "dallas,ds1672";
+               reg = <0x68>;
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+
+       accelerometer@19 {
+               compatible = "st,lis2de12";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_accel>;
+               reg = <0x19>;
+               st,drdy-int-pin = <1>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "INT1";
+       };
+
+       switch: switch@5f {
+               compatible = "microchip,ksz9897";
+               reg = <0x5f>;
+               pinctrl-0 = <&pinctrl_ksz>;
+               interrupt-parent = <&gpio4>;
+               interrupts = <29 IRQ_TYPE_EDGE_FALLING>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       lan1: port@0 {
+                               reg = <0>;
+                               label = "lan1";
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       lan2: port@1 {
+                               reg = <1>;
+                               label = "lan2";
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       lan3: port@2 {
+                               reg = <2>;
+                               label = "lan3";
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       lan4: port@3 {
+                               reg = <3>;
+                               label = "lan4";
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       lan5: port@4 {
+                               reg = <4>;
+                               label = "lan5";
+                               local-mac-address = [00 00 00 00 00 00];
+                       };
+
+                       port@6 {
+                               reg = <6>;
+                               label = "cpu";
+                               ethernet = <&fec>;
+                               phy-mode = "rgmii-id";
+
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
+               };
+       };
+};
+
+/* off-board header */
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+/* off-board header */
+&i2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+};
+
+/* GPS / off-board header */
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+/* RS232 console */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+/* USB1 - Type C front panel */
+&usb3_phy0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb1>;
+       status = "okay";
+};
+
+&usb3_0 {
+       fsl,over-current-active-low;
+       status = "okay";
+};
+
+&usb_dwc3_0 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* USB2 - USB3.0 Hub */
+&usb3_phy1 {
+       vbus-supply = <&reg_usb2_vbus>;
+       status = "okay";
+};
+
+&usb3_1 {
+       fsl,permanently-attached;
+       fsl,disable-port-power-control;
+       status = "okay";
+};
+
+&usb_dwc3_1 {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* eMMC */
+&usdhc3 {
+       assigned-clocks = <&clk IMX8MP_CLK_USDHC3>;
+       assigned-clock-rates = <400000000>;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       fsl,ext-reset-output;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hog>;
+
+       pinctrl_hog: hoggrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09     0x40000041 /* DIO0 */
+                       MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11     0x40000041 /* DIO1 */
+                       MX8MP_IOMUXC_NAND_DQS__GPIO3_IO14       0x40000041 /* M2SKT_OFF# */
+                       MX8MP_IOMUXC_SD2_DATA2__GPIO2_IO17      0x40000159 /* PCIE1_WDIS# */
+                       MX8MP_IOMUXC_SD2_DATA3__GPIO2_IO18      0x40000159 /* PCIE2_WDIS# */
+                       MX8MP_IOMUXC_SD2_CMD__GPIO2_IO14        0x40000159 /* PCIE3_WDIS# */
+                       MX8MP_IOMUXC_NAND_DATA00__GPIO3_IO06    0x40000041 /* M2SKT_RST# */
+                       MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18      0x40000159 /* M2SKT_WDIS# */
+                       MX8MP_IOMUXC_NAND_ALE__GPIO3_IO00       0x40000159 /* M2SKT_GDIS# */
+                       MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01       0x40000104 /* UART_TERM */
+                       MX8MP_IOMUXC_SAI3_TXFS__GPIO4_IO31      0x40000104 /* UART_RS485 */
+                       MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00       0x40000104 /* UART_HALF */
+               >;
+       };
+
+       pinctrl_accel: accelgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07     0x159
+               >;
+       };
+
+       pinctrl_eqos: eqosgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                             0x3
+                       MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO                           0x3
+                       MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0               0x91
+                       MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1               0x91
+                       MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2               0x91
+                       MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3               0x91
+                       MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK       0x91
+                       MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL         0x91
+                       MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0               0x1f
+                       MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1               0x1f
+                       MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2               0x1f
+                       MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3               0x1f
+                       MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL         0x1f
+                       MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK       0x1f
+                       MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30               0x141 /* RST# */
+                       MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28              0x159 /* IRQ# */
+               >;
+       };
+
+       pinctrl_fec: fecgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0         0x91
+                       MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1         0x91
+                       MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2         0x91
+                       MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3         0x91
+                       MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC          0x91
+                       MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL      0x91
+                       MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0         0x1f
+                       MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1         0x1f
+                       MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2         0x1f
+                       MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3         0x1f
+                       MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL      0x1f
+                       MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC         0x1f
+                       MX8MP_IOMUXC_SAI1_RXFS__ENET1_1588_EVENT0_IN    0x141
+                       MX8MP_IOMUXC_SAI1_RXC__ENET1_1588_EVENT0_OUT    0x141
+               >;
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154
+                       MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154
+               >;
+       };
+
+       pinctrl_gsc: gscgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI1_MCLK__GPIO4_IO20      0x159
+               >;
+       };
+
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL         0x400001c3
+                       MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA         0x400001c3
+               >;
+       };
+
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL         0x400001c3
+                       MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA         0x400001c3
+               >;
+       };
+
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL         0x400001c3
+                       MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA         0x400001c3
+               >;
+       };
+
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL         0x400001c3
+                       MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA         0x400001c3
+               >;
+       };
+
+       pinctrl_ksz: kszgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29       0x159 /* IRQ# */
+                       MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02      0x141 /* RST# */
+               >;
+       };
+
+       pinctrl_gpio_leds: ledgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_DATA0__GPIO2_IO15      0x19
+                       MX8MP_IOMUXC_SD2_DATA1__GPIO2_IO16      0x19
+               >;
+       };
+
+       pinctrl_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07    0x141
+               >;
+       };
+
+       pinctrl_pps: ppsgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12     0x141
+               >;
+       };
+
+       pinctrl_reg_can: regcangrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19      0x154
+               >;
+       };
+
+       pinctrl_reg_usb2: regusb2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06     0x141
+               >;
+       };
+
+       pinctrl_reg_wifi: regwifigrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_DATA03__GPIO3_IO09    0x119
+               >;
+       };
+
+       pinctrl_sai2: sai2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC
+                       MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00
+                       MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK
+                       MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK
+               >;
+       };
+
+       pinctrl_spi2: spi2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK   0x82
+                       MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI   0x82
+                       MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO   0x82
+                       MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13     0x140
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX    0x140
+                       MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX    0x140
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX    0x140
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX    0x140
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX    0x140
+                       MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX    0x140
+                       MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21      0x140
+                       MX8MP_IOMUXC_SAI5_RXD1__GPIO3_IO22      0x140
+               >;
+       };
+
+       pinctrl_uart3_gpio: uart3gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_DATA02__GPIO3_IO08    0x119
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX    0x140
+                       MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX    0x140
+               >;
+       };
+
+       pinctrl_usb1: usb1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO13__USB1_OTG_OC    0x140
+                       MX8MP_IOMUXC_GPIO1_IO10__USB1_OTG_ID    0x140
+               >;
+       };
+
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK        0x190
+                       MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD        0x1d0
+                       MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0    0x1d0
+                       MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1    0x1d0
+                       MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2    0x1d0
+                       MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3    0x1d0
+               >;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK      0x190
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD      0x1d0
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0  0x1d0
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1  0x1d0
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2  0x1d0
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3  0x1d0
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4    0x1d0
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5   0x1d0
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6   0x1d0
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7     0x1d0
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE  0x190
+               >;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK      0x194
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD      0x1d4
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0  0x1d4
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1  0x1d4
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2  0x1d4
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3  0x1d4
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4    0x1d4
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5   0x1d4
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6   0x1d4
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7     0x1d4
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE  0x194
+               >;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK      0x196
+                       MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD      0x1d6
+                       MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0  0x1d6
+                       MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1  0x1d6
+                       MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2  0x1d6
+                       MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3  0x1d6
+                       MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4    0x1d6
+                       MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5   0x1d6
+                       MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6   0x1d6
+                       MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7     0x1d6
+                       MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE  0x196
+               >;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B   0x166
+               >;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi
new file mode 100644 (file)
index 0000000..4b8f86f
--- /dev/null
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/* TODO: Audio Codec */
+
+&backlight {
+       power-supply = <&reg_3p3v>;
+};
+
+/* Verdin SPI_1 */
+&ecspi1 {
+       status = "okay";
+};
+
+/* EEPROM on display adapter boards */
+&eeprom_display_adapter {
+       status = "okay";
+};
+
+/* EEPROM on Verdin Development board */
+&eeprom_carrier_board {
+       status = "okay";
+};
+
+&eqos {
+       status = "okay";
+};
+
+&flexcan1 {
+       status = "okay";
+};
+
+&flexcan2 {
+       status = "okay";
+};
+
+/* Verdin QSPI_1 */
+&flexspi {
+       status = "okay";
+};
+
+/* Current measurement into module VCC */
+&hwmon {
+       status = "okay";
+};
+
+&hwmon_temp {
+       vs-supply = <&reg_1p8v>;
+       status = "okay";
+};
+
+/* Verdin I2C_2_DSI */
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+/* Verdin I2C_1 */
+&i2c4 {
+       status = "okay";
+
+       /* TODO: Audio Codec */
+};
+
+/* TODO: Verdin PCIE_1 */
+
+/* Verdin PWM_1 */
+&pwm1 {
+       status = "okay";
+};
+
+/* Verdin PWM_2 */
+&pwm2 {
+       status = "okay";
+};
+
+/* Verdin PWM_3_DSI */
+&pwm3 {
+       status = "okay";
+};
+
+&reg_usdhc2_vmmc {
+       vin-supply = <&reg_3p3v>;
+};
+
+/* TODO: Verdin I2S_1 */
+
+/* Verdin UART_1 */
+&uart1 {
+       status = "okay";
+};
+
+/* Verdin UART_2 */
+&uart2 {
+       status = "okay";
+};
+
+/* Verdin UART_3, used as the Linux Console */
+&uart3 {
+       status = "okay";
+};
+
+/* Verdin USB_1 */
+&usb3_0 {
+       status = "okay";
+};
+
+&usb3_phy0 {
+       status = "okay";
+};
+
+/* Verdin USB_2 */
+&usb3_1 {
+       status = "okay";
+};
+
+&usb3_phy1 {
+       status = "okay";
+};
+
+/* Verdin SD_1 */
+&usdhc2 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
new file mode 100644 (file)
index 0000000..cefabe6
--- /dev/null
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+#include "imx8mp-verdin-dahlia.dtsi"
+
+/ {
+       /* TODO: Audio Codec */
+
+       reg_eth2phy: regulator-eth2phy {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio_expander_21 4 GPIO_ACTIVE_HIGH>; /* ETH_PWR_EN */
+               off-on-delay = <500000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_ETH";
+               startup-delay-us = <200000>;
+               vin-supply = <&reg_3p3v>;
+       };
+};
+
+&fec {
+       phy-supply = <&reg_eth2phy>;
+       status = "okay";
+};
+
+&gpio_expander_21 {
+       status = "okay";
+       vcc-supply = <&reg_1p8v>;
+};
+
+/* TODO: Verdin I2C_1 with Audio Codec */
+
+/* Verdin UART_1, connector X50 through RS485 transceiver */
+&uart1 {
+       linux,rs485-enabled-at-boot-time;
+       rs485-rts-active-low;
+       rs485-rx-during-tx;
+};
+
+/* Limit frequency on dev board due to long traces and bad signal integrity */
+&usdhc2 {
+       max-frequency = <100000000>;
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dahlia.dts
new file mode 100644 (file)
index 0000000..68147b0
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mp-verdin.dtsi"
+#include "imx8mp-verdin-nonwifi.dtsi"
+#include "imx8mp-verdin-dahlia.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Plus on Dahlia Board";
+       compatible = "toradex,verdin-imx8mp-nonwifi-dahlia",
+                    "toradex,verdin-imx8mp-nonwifi",
+                    "toradex,verdin-imx8mp",
+                    "fsl,imx8mp";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi-dev.dts
new file mode 100644 (file)
index 0000000..879ff68
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mp-verdin.dtsi"
+#include "imx8mp-verdin-nonwifi.dtsi"
+#include "imx8mp-verdin-dev.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Plus on Verdin Development Board";
+       compatible = "toradex,verdin-imx8mp-nonwifi-dev",
+                    "toradex,verdin-imx8mp-nonwifi",
+                    "toradex,verdin-imx8mp",
+                    "fsl,imx8mp";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-nonwifi.dtsi
new file mode 100644 (file)
index 0000000..91d5973
--- /dev/null
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+&gpio5 {
+       gpio-line-names = "SODIMM_42",
+                         "SODIMM_46",
+                         "SODIMM_187",
+                         "SODIMM_20",
+                         "SODIMM_22",
+                         "SODIMM_15",
+                         "SODIMM_196",
+                         "SODIMM_200",
+                         "SODIMM_198",
+                         "SODIMM_202",
+                         "SODIMM_164",
+                         "SODIMM_152",
+                         "SODIMM_116",
+                         "SODIMM_128",
+                         "",
+                         "",
+                         "SODIMM_55",
+                         "SODIMM_53",
+                         "SODIMM_95",
+                         "SODIMM_93",
+                         "SODIMM_14",
+                         "SODIMM_12",
+                         "SODIMM_129",
+                         "SODIMM_131",
+                         "SODIMM_137",
+                         "SODIMM_139",
+                         "SODIMM_147",
+                         "SODIMM_149",
+                         "SODIMM_151",
+                         "SODIMM_153";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
+                   <&pinctrl_gpio3>, <&pinctrl_gpio4>,
+                   <&pinctrl_gpio7>, <&pinctrl_gpio8>,
+                   <&pinctrl_gpio_hog1>, <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>,
+                   <&pinctrl_hdmi_hog>;
+};
+
+/*
+ * Verdin UART_4
+ * Often used by the M7 and then should not be enabled here.
+ */
+&uart4 {
+       status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dahlia.dts
new file mode 100644 (file)
index 0000000..804567f
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mp-verdin.dtsi"
+#include "imx8mp-verdin-wifi.dtsi"
+#include "imx8mp-verdin-dahlia.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Plus WB on Dahlia Board";
+       compatible = "toradex,verdin-imx8mp-wifi-dahlia",
+                    "toradex,verdin-imx8mp-wifi",
+                    "toradex,verdin-imx8mp",
+                    "fsl,imx8mp";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi-dev.dts
new file mode 100644 (file)
index 0000000..c1713c2
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8mp-verdin.dtsi"
+#include "imx8mp-verdin-wifi.dtsi"
+#include "imx8mp-verdin-dev.dtsi"
+
+/ {
+       model = "Toradex Verdin iMX8M Plus WB on Verdin Development Board";
+       compatible = "toradex,verdin-imx8mp-wifi-dev",
+                    "toradex,verdin-imx8mp-wifi",
+                    "toradex,verdin-imx8mp",
+                    "fsl,imx8mp";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin-wifi.dtsi
new file mode 100644 (file)
index 0000000..36289c1
--- /dev/null
@@ -0,0 +1,82 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+/ {
+       reg_wifi_en: regulator-wifi-en {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 11 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_wifi_pwr_en>;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "PDn_AW-CM276NF";
+               startup-delay-us = <2000>;
+       };
+};
+
+&gpio5 {
+       gpio-line-names = "SODIMM_42",
+                         "SODIMM_46",
+                         "SODIMM_187",
+                         "SODIMM_20",
+                         "SODIMM_22",
+                         "SODIMM_15",
+                         "SODIMM_196",
+                         "SODIMM_200",
+                         "SODIMM_198",
+                         "SODIMM_202",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_55",
+                         "SODIMM_53",
+                         "SODIMM_95",
+                         "SODIMM_93",
+                         "SODIMM_14",
+                         "SODIMM_12",
+                         "SODIMM_129",
+                         "SODIMM_131",
+                         "SODIMM_137",
+                         "SODIMM_139",
+                         "SODIMM_147",
+                         "SODIMM_149",
+                         "SODIMM_151",
+                         "SODIMM_153";
+};
+
+&iomuxc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio1>, <&pinctrl_gpio2>,
+                   <&pinctrl_gpio3>, <&pinctrl_gpio4>,
+                   <&pinctrl_gpio7>, <&pinctrl_gpio8>,
+                   <&pinctrl_gpio_hog2>, <&pinctrl_gpio_hog3>, <&pinctrl_gpio_hog4>,
+                   <&pinctrl_hdmi_hog>;
+};
+
+/* On-module Bluetooth */
+&uart4 {
+       uart-has-rtscts;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_bt_uart>;
+       status = "okay";
+};
+
+/* On-module Wi-Fi */
+&usdhc1 {
+       bus-width = <4>;
+       keep-power-in-suspend;
+       max-frequency = <100000000>;
+       non-removable;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_wifi_ctrl>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>, <&pinctrl_wifi_ctrl>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>, <&pinctrl_wifi_ctrl>;
+       vmmc-supply = <&reg_wifi_en>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi b/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
new file mode 100644 (file)
index 0000000..fb17e32
--- /dev/null
@@ -0,0 +1,1380 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2022 Toradex
+ */
+
+#include "dt-bindings/pwm/pwm.h"
+#include "imx8mp.dtsi"
+
+/ {
+       chosen {
+               stdout-path = &uart3;
+       };
+
+       aliases {
+               /* Ethernet aliases to ensure correct MAC addresses */
+               ethernet0 = &eqos;
+               ethernet1 = &fec;
+               rtc0 = &rtc_i2c;
+               rtc1 = &snvs_rtc;
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 45 63 88 119 158 203 255>;
+               default-brightness-level = <4>;
+               /* Verdin I2S_2_D_OUT (DSI_1_BKL_EN/DSI_1_BKL_EN_LVDS, SODIMM 46) */
+               enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_i2s_2_d_out_dsi_1_bkl_en>;
+               power-supply = <&reg_3p3v>;
+               /* Verdin PWM_3_DSI/PWM_3_DSI_LVDS (SODIMM 19) */
+               pwms = <&pwm3 0 6666667 PWM_POLARITY_INVERTED>;
+               status = "disabled";
+       };
+
+       backlight_mezzanine: backlight-mezzanine {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 45 63 88 119 158 203 255>;
+               default-brightness-level = <4>;
+               /* Verdin GPIO 4 (SODIMM 212) */
+               enable-gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
+               /* Verdin PWM_2 (SODIMM 16) */
+               pwms = <&pwm2 0 6666667 PWM_POLARITY_INVERTED>;
+               status = "disabled";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_keys>;
+
+               wakeup {
+                       debounce-interval = <10>;
+                       /* Verdin CTRL_WAKE1_MICO# (SODIMM 252) */
+                       gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;
+                       label = "Wake-Up";
+                       linux,code = <KEY_WAKEUP>;
+                       wakeup-source;
+               };
+       };
+
+       /* Carrier Board Supplies */
+       reg_1p8v: regulator-1p8v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <1800000>;
+               regulator-min-microvolt = <1800000>;
+               regulator-name = "+V1.8_SW";
+       };
+
+       reg_3p3v: regulator-3p3v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_SW";
+       };
+
+       reg_5p0v: regulator-5p0v {
+               compatible = "regulator-fixed";
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "+V5_SW";
+       };
+
+       /* Non PMIC On-module Supplies */
+       reg_module_eth1phy: regulator-module-eth1phy {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 20 GPIO_ACTIVE_HIGH>; /* PMIC_EN_ETH */
+               off-on-delay = <500000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_eth>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "On-module +V3.3_ETH";
+               startup-delay-us = <200000>;
+               vin-supply = <&reg_vdd_3v3>;
+       };
+
+       reg_usb1_vbus: regulator-usb1-vbus {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin USB_1_EN (SODIMM 155) */
+               gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb1_vbus>;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "USB_1_EN";
+       };
+
+       reg_usb2_vbus: regulator-usb2-vbus {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin USB_2_EN (SODIMM 185) */
+               gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usb2_vbus>;
+               regulator-max-microvolt = <5000000>;
+               regulator-min-microvolt = <5000000>;
+               regulator-name = "USB_2_EN";
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin SD_1_PWR_EN (SODIMM 76) */
+               gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>;
+               off-on-delay = <100000>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usdhc2_pwr_en>;
+               regulator-max-microvolt = <3300000>;
+               regulator-min-microvolt = <3300000>;
+               regulator-name = "+V3.3_SD";
+               startup-delay-us = <2000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* Use the kernel configuration settings instead */
+               /delete-node/ linux,cma;
+       };
+};
+
+/* Verdin SPI_1 */
+&ecspi1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ecspi1>;
+};
+
+/* Verdin ETH_1 (On-module PHY) */
+&eqos {
+       phy-handle = <&ethphy0>;
+       phy-mode = "rgmii-id";
+       phy-supply = <&reg_module_eth1phy>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_eqos>;
+       snps,force_thresh_dma_mode;
+       snps,mtl-rx-config = <&mtl_rx_setup>;
+       snps,mtl-tx-config = <&mtl_tx_setup>;
+
+       mdio {
+               compatible = "snps,dwmac-mdio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@7 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       eee-broken-100tx;
+                       eee-broken-1000t;
+                       interrupt-parent = <&gpio1>;
+                       interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+                       micrel,led-mode = <0>;
+                       reg = <7>;
+               };
+       };
+
+       mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <5>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x1>;
+                       snps,map-to-dma-channel = <0>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x2>;
+                       snps,map-to-dma-channel = <1>;
+               };
+
+               queue2 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x4>;
+                       snps,map-to-dma-channel = <2>;
+               };
+
+               queue3 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x8>;
+                       snps,map-to-dma-channel = <3>;
+               };
+
+               queue4 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0xf0>;
+                       snps,map-to-dma-channel = <4>;
+               };
+       };
+
+       mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <5>;
+               snps,tx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x1>;
+               };
+
+               queue1 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x2>;
+               };
+
+               queue2 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x4>;
+               };
+
+               queue3 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0x8>;
+               };
+
+               queue4 {
+                       snps,dcb-algorithm;
+                       snps,priority = <0xf0>;
+               };
+       };
+};
+
+/* Verdin ETH_2_RGMII */
+&fec {
+       fsl,magic-packet;
+       phy-handle = <&ethphy1>;
+       phy-mode = "rgmii-id";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_fec>;
+       pinctrl-1 = <&pinctrl_fec_sleep>;
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy1: ethernet-phy@7 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       interrupt-parent = <&gpio4>;
+                       interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
+                       micrel,led-mode = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+/* Verdin CAN_1 */
+&flexcan1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan1>;
+       status = "disabled";
+};
+
+
+/* Verdin CAN_2 */
+&flexcan2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexcan2>;
+       status = "disabled";
+};
+
+/* Verdin QSPI_1 */
+&flexspi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi0>;
+};
+
+&gpio1 {
+       gpio-line-names = "SODIMM_206",
+                         "SODIMM_208",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_210",
+                         "SODIMM_212",
+                         "SODIMM_216",
+                         "SODIMM_218",
+                         "",
+                         "",
+                         "SODIMM_16",
+                         "SODIMM_155",
+                         "SODIMM_157",
+                         "SODIMM_185",
+                         "SODIMM_91";
+};
+
+&gpio2 {
+       gpio-line-names = "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_143",
+                         "SODIMM_141",
+                         "",
+                         "",
+                         "SODIMM_161",
+                         "",
+                         "SODIMM_84",
+                         "SODIMM_78",
+                         "SODIMM_74",
+                         "SODIMM_80",
+                         "SODIMM_82",
+                         "SODIMM_70",
+                         "SODIMM_72";
+
+       ctrl-sleep-moci-hog {
+               gpio-hog;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpios = <29 GPIO_ACTIVE_HIGH>;
+               line-name = "CTRL_SLEEP_MOCI#";
+               output-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+       };
+};
+
+&gpio3 {
+       gpio-line-names = "SODIMM_52",
+                         "SODIMM_54",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_56",
+                         "SODIMM_58",
+                         "SODIMM_60",
+                         "SODIMM_62",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "SODIMM_66",
+                         "",
+                         "SODIMM_64",
+                         "",
+                         "",
+                         "SODIMM_34",
+                         "SODIMM_19",
+                         "",
+                         "SODIMM_32",
+                         "",
+                         "",
+                         "SODIMM_30",
+                         "SODIMM_59",
+                         "SODIMM_57",
+                         "SODIMM_63",
+                         "SODIMM_61";
+};
+
+&gpio4 {
+       gpio-line-names = "SODIMM_252",
+                         "SODIMM_222",
+                         "SODIMM_36",
+                         "SODIMM_220",
+                         "SODIMM_193",
+                         "SODIMM_191",
+                         "SODIMM_201",
+                         "SODIMM_203",
+                         "SODIMM_205",
+                         "SODIMM_207",
+                         "SODIMM_199",
+                         "SODIMM_197",
+                         "SODIMM_221",
+                         "SODIMM_219",
+                         "SODIMM_217",
+                         "SODIMM_215",
+                         "SODIMM_211",
+                         "SODIMM_213",
+                         "SODIMM_189",
+                         "SODIMM_244",
+                         "SODIMM_38",
+                         "",
+                         "SODIMM_76",
+                         "SODIMM_135",
+                         "SODIMM_133",
+                         "SODIMM_17",
+                         "SODIMM_24",
+                         "SODIMM_26",
+                         "SODIMM_21",
+                         "SODIMM_256",
+                         "SODIMM_48",
+                         "SODIMM_44";
+};
+
+/* On-module I2C */
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       pinctrl-1 = <&pinctrl_i2c1_gpio>;
+       scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       status = "okay";
+
+       pca9450: pmic@25 {
+               compatible = "nxp,pca9450c";
+               interrupt-parent = <&gpio1>;
+               /* PMIC PCA9450 PMIC_nINT GPIO1_IO3 */
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               reg = <0x25>;
+               sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
+
+               /*
+                * The bootloader is expected to switch on LDO4 for the on-module +V3.3_ADC and the
+                * I2C level shifter for the TLA2024 ADC behind this PMIC.
+                */
+
+               regulators {
+                       BUCK1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-min-microvolt = <720000>;
+                               regulator-name = "On-module +VDD_SOC (BUCK1)";
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       BUCK2 {
+                               nxp,dvs-run-voltage = <950000>;
+                               nxp,dvs-standby-voltage = <850000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1025000>;
+                               regulator-min-microvolt = <720000>;
+                               regulator-name = "On-module +VDD_ARM (BUCK2)";
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       reg_vdd_3v3: BUCK4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "On-module +V3.3 (BUCK4)";
+                       };
+
+                       reg_vdd_1v8: BUCK5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "PWR_1V8_MOCI (BUCK5)";
+                       };
+
+                       BUCK6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1155000>;
+                               regulator-min-microvolt = <1045000>;
+                               regulator-name = "On-module +VDD_DDR (BUCK6)";
+                       };
+
+                       LDO1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1950000>;
+                               regulator-min-microvolt = <1650000>;
+                               regulator-name = "On-module +V1.8_SNVS (LDO1)";
+                       };
+
+                       LDO2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-min-microvolt = <800000>;
+                               regulator-name = "On-module +V0.8_SNVS (LDO2)";
+                       };
+
+                       LDO3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "On-module +V1.8A (LDO3)";
+                       };
+
+                       LDO4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "On-module +V3.3_ADC (LDO4)";
+                       };
+
+                       LDO5 {
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "On-module +V3.3_1.8_SD (LDO5)";
+                       };
+               };
+       };
+
+       rtc_i2c: rtc@32 {
+               compatible = "epson,rx8130";
+               reg = <0x32>;
+       };
+
+       /* On-module temperature sensor */
+       hwmon_temp_module: sensor@48 {
+               compatible = "ti,tmp1075";
+               reg = <0x48>;
+               vs-supply = <&reg_vdd_1v8>;
+       };
+
+       adc@49 {
+               compatible = "ti,ads1015";
+               reg = <0x49>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* Verdin I2C_1 (ADC_4 - ADC_3) */
+               channel@0 {
+                       reg = <0>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 (ADC_4 - ADC_1) */
+               channel@1 {
+                       reg = <1>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 (ADC_3 - ADC_1) */
+               channel@2 {
+                       reg = <2>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 (ADC_2 - ADC_1) */
+               channel@3 {
+                       reg = <3>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 ADC_4 */
+               channel@4 {
+                       reg = <4>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 ADC_3 */
+               channel@5 {
+                       reg = <5>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 ADC_2 */
+               channel@6 {
+                       reg = <6>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+
+               /* Verdin I2C_1 ADC_1 */
+               channel@7 {
+                       reg = <7>;
+                       ti,datarate = <4>;
+                       ti,gain = <2>;
+               };
+       };
+
+       eeprom@50 {
+               compatible = "st,24c02";
+               pagesize = <16>;
+               reg = <0x50>;
+       };
+};
+
+/* Verdin I2C_2_DSI */
+&i2c2 {
+       /* Lower frequency to avoid DDC/EDID issues with certain displays/screens. */
+       clock-frequency = <10000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       pinctrl-1 = <&pinctrl_i2c2_gpio>;
+       scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+       atmel_mxt_ts_mezzanine: touch-mezzanine@4a {
+               compatible = "atmel,maxtouch";
+               /* Verdin GPIO_3 (SODIMM 210) */
+               interrupt-parent = <&gpio1>;
+               interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
+               reg = <0x4a>;
+               /* Verdin GPIO_2 (SODIMM 208) */
+               reset-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+};
+
+/* TODO: Verdin I2C_3_HDMI */
+
+/* Verdin I2C_4_CSI */
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       pinctrl-1 = <&pinctrl_i2c3_gpio>;
+       scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
+/* Verdin I2C_1 */
+&i2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       pinctrl-1 = <&pinctrl_i2c4_gpio>;
+       scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+
+       gpio_expander_21: gpio-expander@21 {
+               compatible = "nxp,pcal6416";
+               #gpio-cells = <2>;
+               gpio-controller;
+               reg = <0x21>;
+               vcc-supply = <&reg_3p3v>;
+               status = "disabled";
+       };
+
+       lvds_ti_sn65dsi83: bridge@2c {
+               compatible = "ti,sn65dsi83";
+               /* Verdin GPIO_9_DSI (SN65DSI84 IRQ, SODIMM 17, unused) */
+               /* Verdin GPIO_10_DSI (SODIMM 21) */
+               enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_10_dsi>;
+               reg = <0x2c>;
+               status = "disabled";
+       };
+
+       /* Current measurement into module VCC */
+       hwmon: hwmon@40 {
+               compatible = "ti,ina219";
+               reg = <0x40>;
+               shunt-resistor = <10000>;
+               status = "disabled";
+       };
+
+       hdmi_lontium_lt8912: hdmi@48 {
+               compatible = "lontium,lt8912b";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_10_dsi>, <&pinctrl_pwm_3_dsi_hpd_gpio>;
+               reg = <0x48>;
+               /* Verdin GPIO_9_DSI (LT8912 INT, SODIMM 17, unused) */
+               /* Verdin GPIO_10_DSI (SODIMM 21) */
+               reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
+               status = "disabled";
+       };
+
+       atmel_mxt_ts: touch@4a {
+               compatible = "atmel,maxtouch";
+               /*
+                * Verdin GPIO_9_DSI
+                * (TOUCH_INT#, SODIMM 17, also routed to SN65DSI83 IRQ albeit currently unused)
+                */
+               interrupt-parent = <&gpio4>;
+               interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>;
+               reg = <0x4a>;
+               /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */
+               reset-gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;
+               status = "disabled";
+       };
+
+       /* Temperature sensor on carrier board */
+       hwmon_temp: sensor@4f {
+               compatible = "ti,tmp75c";
+               reg = <0x4f>;
+               status = "disabled";
+       };
+
+       /* EEPROM on display adapter (MIPI DSI Display Adapter) */
+       eeprom_display_adapter: eeprom@50 {
+               compatible = "st,24c02";
+               pagesize = <16>;
+               reg = <0x50>;
+               status = "disabled";
+       };
+
+       /* EEPROM on carrier board */
+       eeprom_carrier_board: eeprom@57 {
+               compatible = "st,24c02";
+               pagesize = <16>;
+               reg = <0x57>;
+               status = "disabled";
+       };
+};
+
+/* TODO: Verdin PCIE_1 */
+
+/* Verdin PWM_1 */
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_1>;
+       #pwm-cells = <3>;
+};
+
+/* Verdin PWM_2 */
+&pwm2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_2>;
+       #pwm-cells = <3>;
+};
+
+/* Verdin PWM_3_DSI */
+&pwm3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pwm_3>;
+       #pwm-cells = <3>;
+};
+
+/* TODO: Verdin I2S_1 */
+
+/* TODO: Verdin I2S_2 */
+
+&snvs_pwrkey {
+       status = "okay";
+};
+
+/* Verdin UART_1 */
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart1>;
+       uart-has-rtscts;
+};
+
+/* Verdin UART_2 */
+&uart2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+};
+
+/* Verdin UART_3, used as the Linux Console */
+&uart3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart3>;
+};
+
+/* Verdin UART_4, used for Bluetooth on Wi-Fi/Bluetooth SKUs */
+&uart4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart4>;
+};
+
+/* Verdin USB_1 */
+&usb3_phy0 {
+       vbus-supply = <&reg_usb1_vbus>;
+};
+
+&usb_dwc3_0 {
+       adp-disable;
+       dr_mode = "otg";
+       hnp-disable;
+       maximum-speed = "high-speed";
+       over-current-active-low;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_1_id>;
+       srp-disable;
+};
+
+/* Verdin USB_2 */
+&usb3_phy1 {
+       vbus-supply = <&reg_usb2_vbus>;
+};
+
+&usb_dwc3_1 {
+       disable-over-current;
+       dr_mode = "host";
+};
+
+/* Verdin SD_1 */
+&usdhc2 {
+       assigned-clocks = <&clk IMX8MP_CLK_USDHC2>;
+       assigned-clock-rates = <400000000>;
+       bus-width = <4>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_cd>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_cd>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_cd>;
+       pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_cd_sleep>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+};
+
+/* On-module eMMC */
+&usdhc3 {
+       assigned-clocks = <&clk IMX8MP_CLK_USDHC3_ROOT>;
+       assigned-clock-rates = <400000000>;
+       bus-width = <8>;
+       non-removable;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc3>;
+       pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
+       status = "okay";
+};
+
+&wdog1 {
+       fsl,ext-reset-output;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdog>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_bt_uart: btuartgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_ECSPI2_MISO__UART4_DCE_CTS        0x1c4>,
+                       <MX8MP_IOMUXC_ECSPI2_MOSI__UART4_DCE_TX         0x1c4>,
+                       <MX8MP_IOMUXC_ECSPI2_SCLK__UART4_DCE_RX         0x1c4>,
+                       <MX8MP_IOMUXC_ECSPI2_SS0__UART4_DCE_RTS         0x1c4>;
+       };
+
+       pinctrl_ctrl_sleep_moci: ctrlsleepmocigrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29              0x1c4>; /* SODIMM 256 */
+       };
+
+       pinctrl_ecspi1: ecspi1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_ECSPI1_MISO__ECSPI1_MISO          0x1c4>, /* SODIMM 198 */
+                       <MX8MP_IOMUXC_ECSPI1_MOSI__ECSPI1_MOSI          0x4>,   /* SODIMM 200 */
+                       <MX8MP_IOMUXC_ECSPI1_SCLK__ECSPI1_SCLK          0x4>,   /* SODIMM 196 */
+                       <MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09            0x1c4>; /* SODIMM 202 */
+       };
+
+       /* Connection On Board PHY */
+       pinctrl_eqos: eqosgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_ENET_MDC__ENET_QOS_MDC                            0x3>,
+                       <MX8MP_IOMUXC_ENET_MDIO__ENET_QOS_MDIO                          0x3>,
+                       <MX8MP_IOMUXC_ENET_RD0__ENET_QOS_RGMII_RD0                      0x91>,
+                       <MX8MP_IOMUXC_ENET_RD1__ENET_QOS_RGMII_RD1                      0x91>,
+                       <MX8MP_IOMUXC_ENET_RD2__ENET_QOS_RGMII_RD2                      0x91>,
+                       <MX8MP_IOMUXC_ENET_RD3__ENET_QOS_RGMII_RD3                      0x91>,
+                       <MX8MP_IOMUXC_ENET_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK      0x91>,
+                       <MX8MP_IOMUXC_ENET_RX_CTL__ENET_QOS_RGMII_RX_CTL                0x91>,
+                       <MX8MP_IOMUXC_ENET_TD0__ENET_QOS_RGMII_TD0                      0x1f>,
+                       <MX8MP_IOMUXC_ENET_TD1__ENET_QOS_RGMII_TD1                      0x1f>,
+                       <MX8MP_IOMUXC_ENET_TD2__ENET_QOS_RGMII_TD2                      0x1f>,
+                       <MX8MP_IOMUXC_ENET_TD3__ENET_QOS_RGMII_TD3                      0x1f>,
+                       <MX8MP_IOMUXC_ENET_TX_CTL__ENET_QOS_RGMII_TX_CTL                0x1f>,
+                       <MX8MP_IOMUXC_ENET_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK      0x1f>;
+       };
+
+       /* ETH_INT# shared with TPM_INT# (usually N/A) */
+       pinctrl_eth_tpm_int: ethtpmintgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10            0x1c4>;
+       };
+
+       /* Connection Carrier Board PHY ETH_2 */
+       pinctrl_fec: fecgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC              0x3>,   /* SODIMM 193 */
+                       <MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO             0x3>,   /* SODIMM 191 */
+                       <MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0        0x91>,  /* SODIMM 201 */
+                       <MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1        0x91>,  /* SODIMM 203 */
+                       <MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2        0x91>,  /* SODIMM 205 */
+                       <MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3        0x91>,  /* SODIMM 207 */
+                       <MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC         0x91>,  /* SODIMM 197 */
+                       <MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL     0x91>,  /* SODIMM 199 */
+                       <MX8MP_IOMUXC_SAI1_TXD0__ENET1_RGMII_TD0        0x1f>,  /* SODIMM 221 */
+                       <MX8MP_IOMUXC_SAI1_TXD1__ENET1_RGMII_TD1        0x1f>,  /* SODIMM 219 */
+                       <MX8MP_IOMUXC_SAI1_TXD2__ENET1_RGMII_TD2        0x1f>,  /* SODIMM 217 */
+                       <MX8MP_IOMUXC_SAI1_TXD3__ENET1_RGMII_TD3        0x1f>,  /* SODIMM 215 */
+                       <MX8MP_IOMUXC_SAI1_TXD4__ENET1_RGMII_TX_CTL     0x1f>,  /* SODIMM 211 */
+                       <MX8MP_IOMUXC_SAI1_TXD5__ENET1_RGMII_TXC        0x1f>,  /* SODIMM 213 */
+                       <MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18             0x1c4>; /* SODIMM 189 */
+       };
+
+       pinctrl_fec_sleep: fecsleepgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_RXD2__ENET1_MDC              0x3>,   /* SODIMM 193 */
+                       <MX8MP_IOMUXC_SAI1_RXD3__ENET1_MDIO             0x3>,   /* SODIMM 191 */
+                       <MX8MP_IOMUXC_SAI1_RXD4__ENET1_RGMII_RD0        0x91>,  /* SODIMM 201 */
+                       <MX8MP_IOMUXC_SAI1_RXD5__ENET1_RGMII_RD1        0x91>,  /* SODIMM 203 */
+                       <MX8MP_IOMUXC_SAI1_RXD6__ENET1_RGMII_RD2        0x91>,  /* SODIMM 205 */
+                       <MX8MP_IOMUXC_SAI1_RXD7__ENET1_RGMII_RD3        0x91>,  /* SODIMM 207 */
+                       <MX8MP_IOMUXC_SAI1_TXC__ENET1_RGMII_RXC         0x91>,  /* SODIMM 197 */
+                       <MX8MP_IOMUXC_SAI1_TXFS__ENET1_RGMII_RX_CTL     0x91>,  /* SODIMM 199 */
+                       <MX8MP_IOMUXC_SAI1_TXD0__GPIO4_IO12             0x1f>,  /* SODIMM 221 */
+                       <MX8MP_IOMUXC_SAI1_TXD1__GPIO4_IO13             0x1f>,  /* SODIMM 219 */
+                       <MX8MP_IOMUXC_SAI1_TXD2__GPIO4_IO14             0x1f>,  /* SODIMM 217 */
+                       <MX8MP_IOMUXC_SAI1_TXD3__GPIO4_IO15             0x1f>,  /* SODIMM 215 */
+                       <MX8MP_IOMUXC_SAI1_TXD4__GPIO4_IO16             0x1f>,  /* SODIMM 211 */
+                       <MX8MP_IOMUXC_SAI1_TXD5__GPIO4_IO17             0x1f>,  /* SODIMM 213 */
+                       <MX8MP_IOMUXC_SAI1_TXD6__GPIO4_IO18             0x184>; /* SODIMM 189 */
+       };
+
+       pinctrl_flexcan1: flexcan1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SPDIF_RX__CAN1_RX                 0x154>, /* SODIMM 22 */
+                       <MX8MP_IOMUXC_SPDIF_TX__CAN1_TX                 0x154>; /* SODIMM 20 */
+       };
+
+       pinctrl_flexcan2: flexcan2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI2_MCLK__CAN2_RX                0x154>, /* SODIMM 26 */
+                       <MX8MP_IOMUXC_SAI2_TXD0__CAN2_TX                0x154>; /* SODIMM 24 */
+       };
+
+       pinctrl_flexspi0: flexspi0grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_NAND_ALE__FLEXSPI_A_SCLK          0x1c2>, /* SODIMM 52 */
+                       <MX8MP_IOMUXC_NAND_CE0_B__FLEXSPI_A_SS0_B       0x82>,  /* SODIMM 54 */
+                       <MX8MP_IOMUXC_NAND_DQS__FLEXSPI_A_DQS           0x82>,  /* SODIMM 66 */
+                       <MX8MP_IOMUXC_NAND_DATA00__FLEXSPI_A_DATA00     0x82>,  /* SODIMM 56 */
+                       <MX8MP_IOMUXC_NAND_DATA01__FLEXSPI_A_DATA01     0x82>,  /* SODIMM 58 */
+                       <MX8MP_IOMUXC_NAND_DATA02__FLEXSPI_A_DATA02     0x82>,  /* SODIMM 60 */
+                       <MX8MP_IOMUXC_NAND_DATA03__FLEXSPI_A_DATA03     0x82>,  /* SODIMM 62 */
+                       <MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16          0x82>;  /* SODIMM 64 */
+       };
+
+       pinctrl_gpio1: gpio1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO00__GPIO1_IO00            0x184>; /* SODIMM 206 */
+       };
+
+       pinctrl_gpio2: gpio2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01            0x1c4>; /* SODIMM 208 */
+       };
+
+       pinctrl_gpio3: gpio3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05            0x184>; /* SODIMM 210 */
+       };
+
+       pinctrl_gpio4: gpio4grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO06__GPIO1_IO06            0x184>; /* SODIMM 212 */
+       };
+
+       pinctrl_gpio5: gpio5grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07            0x184>; /* SODIMM 216 */
+       };
+
+       pinctrl_gpio6: gpio6grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO08__GPIO1_IO08            0x184>; /* SODIMM 218 */
+       };
+
+       pinctrl_gpio7: gpio7grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_RXD1__GPIO4_IO03             0x184>; /* SODIMM 220 */
+       };
+
+       pinctrl_gpio8: gpio8grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_RXC__GPIO4_IO01              0x184>; /* SODIMM 222 */
+       };
+
+       /* Verdin GPIO_9_DSI (pulled-up as active-low) */
+       pinctrl_gpio_9_dsi: gpio9dsigrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25              0x1c4>; /* SODIMM 17 */
+       };
+
+       /* Verdin GPIO_10_DSI */
+       pinctrl_gpio_10_dsi: gpio10dsigrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28             0x1c4>; /* SODIMM 21 */
+       };
+
+       /* Non-wifi MSP usage only */
+       pinctrl_gpio_hog1: gpiohog1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_ECSPI2_MISO__GPIO5_IO12           0x1c4>, /* SODIMM 116 */
+                       <MX8MP_IOMUXC_ECSPI2_MOSI__GPIO5_IO11           0x1c4>, /* SODIMM 152 */
+                       <MX8MP_IOMUXC_ECSPI2_SCLK__GPIO5_IO10           0x1c4>, /* SODIMM 164 */
+                       <MX8MP_IOMUXC_ECSPI2_SS0__GPIO5_IO13            0x1c4>; /* SODIMM 128 */
+       };
+
+       /* USB_2_OC# */
+       pinctrl_gpio_hog2: gpiohog2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02             0x1c4>; /* SODIMM 187 */
+       };
+
+       pinctrl_gpio_hog3: gpiohog3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO13__GPIO1_IO13            0x1c4>, /* SODIMM 157 */
+                       /* CSI_1_MCLK */
+                       <MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15            0x1c4>; /* SODIMM 91 */
+       };
+
+       /* Wifi usage only */
+       pinctrl_gpio_hog4: gpiohog4grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_UART4_RXD__GPIO5_IO28             0x1c4>, /* SODIMM 151 */
+                       <MX8MP_IOMUXC_UART4_TXD__GPIO5_IO29             0x1c4>; /* SODIMM 153 */
+       };
+
+       pinctrl_gpio_keys: gpiokeysgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_RXFS__GPIO4_IO00             0x1c4>; /* SODIMM 252 */
+       };
+
+       pinctrl_hdmi_hog: hdmihoggrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC        0x40000019>,    /* SODIMM 63 */
+                       <MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL    0x400001c3>,    /* SODIMM 59 */
+                       <MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA    0x400001c3>,    /* SODIMM 57 */
+                       <MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD        0x40000019>;    /* SODIMM 61 */
+       };
+
+       /* On-module I2C */
+       pinctrl_i2c1: i2c1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                0x400001c6>,    /* PMIC_I2C_SCL */
+                       <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                0x400001c6>;    /* PMIC_I2C_SDA */
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14              0x400001c6>,    /* PMIC_I2C_SCL */
+                       <MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15              0x400001c6>;    /* PMIC_I2C_SDA */
+       };
+
+       /* Verdin I2C_2_DSI */
+       pinctrl_i2c2: i2c2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                0x400001c6>,    /* SODIMM 55 */
+                       <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                0x400001c6>;    /* SODIMM 53 */
+       };
+
+       pinctrl_i2c2_gpio: i2c2gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C2_SCL__GPIO5_IO16              0x400001c6>,    /* SODIMM 55 */
+                       <MX8MP_IOMUXC_I2C2_SDA__GPIO5_IO17              0x400001c6>;    /* SODIMM 53 */
+       };
+
+       /* Verdin I2C_4_CSI */
+       pinctrl_i2c3: i2c3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                0x400001c6>,    /* SODIMM 95 */
+                       <MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                0x400001c6>;    /* SODIMM 93 */
+       };
+
+       pinctrl_i2c3_gpio: i2c3gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C3_SCL__GPIO5_IO18              0x400001c6>,    /* SODIMM 95 */
+                       <MX8MP_IOMUXC_I2C3_SDA__GPIO5_IO19              0x400001c6>;    /* SODIMM 93 */
+       };
+
+       /* Verdin I2C_1 */
+       pinctrl_i2c4: i2c4grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                0x400001c6>,    /* SODIMM 14 */
+                       <MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                0x400001c6>;    /* SODIMM 12 */
+       };
+
+       pinctrl_i2c4_gpio: i2c4gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C4_SCL__GPIO5_IO20              0x400001c6>,    /* SODIMM 14 */
+                       <MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21              0x400001c6>;    /* SODIMM 12 */
+       };
+
+       /* Verdin I2S_2_BCLK (TOUCH_RESET#) */
+       pinctrl_i2s_2_bclk_touch_reset: i2s2bclktouchresetgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI3_TXC__GPIO5_IO00              0x184>; /* SODIMM 42 */
+       };
+
+       /* Verdin I2S_2_D_OUT shared with SAI3 */
+       pinctrl_i2s_2_d_out_dsi_1_bkl_en: i2s2doutdsi1bklengrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01              0x184>; /* SODIMM 46 */
+       };
+
+       pinctrl_pcie: pciegrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_TXD7__GPIO4_IO19             0x4>,   /* SODIMM 244 */
+                       <MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19           0x1c4>; /* PMIC_EN_PCIe_CLK, unused */
+       };
+
+       pinctrl_pmic: pmicirqgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03            0x1c4>; /* PMIC_INT# */
+       };
+
+       pinctrl_pwm_1: pwm1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SPDIF_EXT_CLK__PWM1_OUT           0x6>;   /* SODIMM 15 */
+       };
+
+       pinctrl_pwm_2: pwm2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO11__PWM2_OUT              0x6>;   /* SODIMM 16 */
+       };
+
+       /* Verdin PWM_3_DSI shared with GPIO3_IO20 */
+       pinctrl_pwm_3: pwm3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI5_RXC__PWM3_OUT                0x6>;   /* SODIMM 19 */
+       };
+
+       /* Verdin PWM_3_DSI (pulled-down as active-high) shared with PWM3_OUT */
+       pinctrl_pwm_3_dsi_hpd_gpio: pwm3dsi1hpdgpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20              0x184>; /* SODIMM 19 */
+       };
+
+       pinctrl_reg_eth: regethgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD2_WP__GPIO2_IO20                0x184>; /* PMIC_EN_ETH */
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI1_MCLK__AUDIOMIX_SAI1_MCLK             0x96>,  /* SODIMM 38 */
+                       <MX8MP_IOMUXC_SAI1_RXD0__AUDIOMIX_SAI1_RX_DATA00        0x1d6>, /* SODIMM 36 */
+                       <MX8MP_IOMUXC_SAI5_MCLK__AUDIOMIX_SAI1_TX_BCLK          0x1d6>, /* SODIMM 30 */
+                       <MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_SAI1_TX_SYNC          0x1d6>, /* SODIMM 32 */
+                       <MX8MP_IOMUXC_SAI5_RXFS__AUDIOMIX_SAI1_TX_DATA00        0x96>;  /* SODIMM 34 */
+       };
+
+       pinctrl_sai3: sai3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0x1d6>, /* SODIMM 48 */
+                       <MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK   0x1d6>, /* SODIMM 42 */
+                       <MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0x96>,  /* SODIMM 46 */
+                       <MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC  0x1d6>; /* SODIMM 44 */
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI2_RXD0__UART1_DCE_RTS          0x1c4>, /* SODIMM 135 */
+                       <MX8MP_IOMUXC_SAI2_TXFS__UART1_DCE_CTS          0x1c4>, /* SODIMM 133 */
+                       <MX8MP_IOMUXC_UART1_RXD__UART1_DCE_RX           0x1c4>, /* SODIMM 129 */
+                       <MX8MP_IOMUXC_UART1_TXD__UART1_DCE_TX           0x1c4>; /* SODIMM 131 */
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_DATA4__UART2_DCE_RTS          0x1c4>, /* SODIMM 143 */
+                       <MX8MP_IOMUXC_SD1_DATA5__UART2_DCE_CTS          0x1c4>, /* SODIMM 141 */
+                       <MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX           0x1c4>, /* SODIMM 137 */
+                       <MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX           0x1c4>; /* SODIMM 139 */
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_UART3_RXD__UART3_DCE_RX           0x1c4>, /* SODIMM 147 */
+                       <MX8MP_IOMUXC_UART3_TXD__UART3_DCE_TX           0x1c4>; /* SODIMM 149 */
+       };
+
+       /* Non-wifi usage only */
+       pinctrl_uart4: uart4grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_UART4_RXD__UART4_DCE_RX           0x1c4>, /* SODIMM 151 */
+                       <MX8MP_IOMUXC_UART4_TXD__UART4_DCE_TX           0x1c4>; /* SODIMM 153 */
+       };
+
+       pinctrl_usb1_vbus: usb1vbusgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO12__USB1_OTG_PWR          0x19>;  /* SODIMM 155 */
+       };
+
+       /* USB_1_ID */
+       pinctrl_usb_1_id: usb1idgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_RESET_B__GPIO2_IO10           0x1c4>; /* SODIMM 161 */
+       };
+
+       pinctrl_usb2_vbus: usb2vbusgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO14__USB2_OTG_PWR          0x19>;  /* SODIMM 185 */
+       };
+
+       /* On-module Wi-Fi */
+       pinctrl_usdhc1: usdhc1grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK               0x190>,
+                       <MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD               0x1d0>,
+                       <MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0           0x1d0>,
+                       <MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1           0x1d0>,
+                       <MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2           0x1d0>,
+                       <MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3           0x1d0>;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK               0x194>,
+                       <MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD               0x1d4>,
+                       <MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0           0x1d4>,
+                       <MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1           0x1d4>,
+                       <MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2           0x1d4>,
+                       <MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3           0x1d4>;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK               0x196>,
+                       <MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD               0x1d6>,
+                       <MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0           0x1d6>,
+                       <MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1           0x1d6>,
+                       <MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2           0x1d6>,
+                       <MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3           0x1d6>;
+       };
+
+       pinctrl_usdhc2_cd: usdhc2cdgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12              0x1c4>; /* SODIMM 84 */
+       };
+
+       pinctrl_usdhc2_cd_sleep: usdhc2cdslpgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12              0x0>;   /* SODIMM 84 */
+       };
+
+       pinctrl_usdhc2_pwr_en: usdhc2pwrengrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22              0x4>;   /* SODIMM 76 */
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT        0x4>,   /* PMIC_USDHC_VSELECT */
+                       <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK               0x190>, /* SODIMM 78 */
+                       <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD               0x1d0>, /* SODIMM 74 */
+                       <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0           0x1d0>, /* SODIMM 80 */
+                       <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1           0x1d0>, /* SODIMM 82 */
+                       <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2           0x1d0>, /* SODIMM 70 */
+                       <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3           0x1d0>; /* SODIMM 72 */
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT        0x4>,
+                       <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK               0x194>,
+                       <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD               0x1d4>,
+                       <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0           0x1d4>,
+                       <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1           0x1d4>,
+                       <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2           0x1d4>,
+                       <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3           0x1d4>;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT        0x4>,
+                       <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK               0x196>,
+                       <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD               0x1d6>,
+                       <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0           0x1d6>,
+                       <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1           0x1d6>,
+                       <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2           0x1d6>,
+                       <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3           0x1d6>;
+       };
+
+       /* Avoid backfeeding with removed card power */
+       pinctrl_usdhc2_sleep: usdhc2slpgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT        0x0>,
+                       <MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK               0x100>,
+                       <MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD               0x100>,
+                       <MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0           0x100>,
+                       <MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1           0x100>,
+                       <MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2           0x100>,
+                       <MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3           0x100>;
+       };
+
+       pinctrl_usdhc3: usdhc3grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO09__USDHC3_RESET_B        0x1d1>,
+                       <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE         0x190>,
+                       <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5          0x1d0>,
+                       <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6          0x1d0>,
+                       <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7            0x1d0>,
+                       <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0         0x1d0>,
+                       <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1         0x1d0>,
+                       <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2         0x1d0>,
+                       <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3         0x1d0>,
+                       <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4           0x1d0>,
+                       <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK             0x190>,
+                       <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD             0x1d0>;
+       };
+
+       pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO09__USDHC3_RESET_B        0x1d1>,
+                       <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE         0x194>,
+                       <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5          0x1d4>,
+                       <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6          0x1d4>,
+                       <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7            0x1d4>,
+                       <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0         0x1d4>,
+                       <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1         0x1d4>,
+                       <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2         0x1d4>,
+                       <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3         0x1d4>,
+                       <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4           0x1d4>,
+                       <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK             0x194>,
+                       <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD             0x1d4>;
+       };
+
+       pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO09__USDHC3_RESET_B        0x1d1>,
+                       <MX8MP_IOMUXC_NAND_CE1_B__USDHC3_STROBE         0x196>,
+                       <MX8MP_IOMUXC_NAND_CE2_B__USDHC3_DATA5          0x1d2>,
+                       <MX8MP_IOMUXC_NAND_CE3_B__USDHC3_DATA6          0x1d2>,
+                       <MX8MP_IOMUXC_NAND_CLE__USDHC3_DATA7            0x1d2>,
+                       <MX8MP_IOMUXC_NAND_DATA04__USDHC3_DATA0         0x1d2>,
+                       <MX8MP_IOMUXC_NAND_DATA05__USDHC3_DATA1         0x1d2>,
+                       <MX8MP_IOMUXC_NAND_DATA06__USDHC3_DATA2         0x1d2>,
+                       <MX8MP_IOMUXC_NAND_DATA07__USDHC3_DATA3         0x1d2>,
+                       <MX8MP_IOMUXC_NAND_RE_B__USDHC3_DATA4           0x1d2>,
+                       <MX8MP_IOMUXC_NAND_WE_B__USDHC3_CLK             0x196>,
+                       <MX8MP_IOMUXC_NAND_WP_B__USDHC3_CMD             0x1d6>;
+       };
+
+       pinctrl_wdog: wdoggrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B          0xc6>;  /* PMIC_WDI */
+       };
+
+       pinctrl_bluetooth_ctrl: bluetoothctrlgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_DATA6__GPIO2_IO08             0x1c4>; /* WIFI_WKUP_BT */
+       };
+
+       pinctrl_wifi_ctrl: wifictrlgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_DATA7__GPIO2_IO09             0x1c4>; /* WIFI_WKUP_WLAN */
+       };
+
+       pinctrl_wifi_i2s: wifii2sgrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21             0x1d6>, /* WIFI_TX_SYNC */
+                       <MX8MP_IOMUXC_SAI5_RXD0__GPIO3_IO21             0x96>,  /* WIFI_RX_DATA0 */
+                       <MX8MP_IOMUXC_SAI5_RXD2__GPIO3_IO23             0x1d6>, /* WIFI_TX_BCLK */
+                       <MX8MP_IOMUXC_SAI5_RXD3__GPIO3_IO24             0x1d6>; /* WIFI_TX_DATA0 */
+       };
+
+       pinctrl_wifi_pwr_en: wifipwrengrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SD1_STROBE__GPIO2_IO11            0x184>; /* PMIC_EN_WIFI */
+       };
+};
index 794d751..d9542df 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/imx8mp-clock.h>
+#include <dt-bindings/power/imx8mp-power.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -58,6 +59,9 @@
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
+                       nvmem-cells = <&cpu_speed_grade>;
+                       nvmem-cell-names = "speed_grade";
+                       operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                };
 
@@ -75,6 +79,7 @@
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
+                       operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                };
 
@@ -92,6 +97,7 @@
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
+                       operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                };
 
                        d-cache-line-size = <64>;
                        d-cache-sets = <128>;
                        next-level-cache = <&A53_L2>;
+                       operating-points-v2 = <&a53_opp_table>;
                        #cooling-cells = <2>;
                };
 
                };
        };
 
+       a53_opp_table: opp-table {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <850000>;
+                       opp-supported-hw = <0x8a0>, <0x7>;
+                       clock-latency-ns = <150000>;
+                       opp-suspend;
+               };
+
+               opp-1600000000 {
+                       opp-hz = /bits/ 64 <1600000000>;
+                       opp-microvolt = <950000>;
+                       opp-supported-hw = <0xa0>, <0x7>;
+                       clock-latency-ns = <150000>;
+                       opp-suspend;
+               };
+
+               opp-1800000000 {
+                       opp-hz = /bits/ 64 <1800000000>;
+                       opp-microvolt = <1000000>;
+                       opp-supported-hw = <0x20>, <0x3>;
+                       clock-latency-ns = <150000>;
+                       opp-suspend;
+               };
+       };
+
        osc_32k: clock-osc-32k {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                                interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                                #reset-cells = <1>;
                        };
+
+                       gpc: gpc@303a0000 {
+                               compatible = "fsl,imx8mp-gpc";
+                               reg = <0x303a0000 0x1000>;
+                               interrupt-parent = <&gic>;
+                               interrupt-controller;
+                               #interrupt-cells = <3>;
+
+                               pgc {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       pgc_mipi_phy1: power-domain@0 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY1>;
+                                       };
+
+                                       pgc_pcie_phy: power-domain@1 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_PCIE_PHY>;
+                                       };
+
+                                       pgc_usb1_phy: power-domain@2 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_USB1_PHY>;
+                                       };
+
+                                       pgc_usb2_phy: power-domain@3 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_USB2_PHY>;
+                                       };
+
+                                       pgc_gpu2d: power-domain@6 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_GPU2D>;
+                                               clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>;
+                                               power-domains = <&pgc_gpumix>;
+                                       };
+
+                                       pgc_gpumix: power-domain@7 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_GPUMIX>;
+                                               clocks = <&clk IMX8MP_CLK_GPU_ROOT>,
+                                                        <&clk IMX8MP_CLK_GPU_AHB>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_GPU_AXI>,
+                                                                 <&clk IMX8MP_CLK_GPU_AHB>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_800M>;
+                                               assigned-clock-rates = <800000000>, <400000000>;
+                                       };
+
+                                       pgc_gpu3d: power-domain@9 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_GPU3D>;
+                                               clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>,
+                                                        <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>;
+                                               power-domains = <&pgc_gpumix>;
+                                       };
+
+                                       pgc_mediamix: power-domain@10 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX>;
+                                               clocks = <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+                                                        <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
+                                       };
+
+                                       pgc_mipi_phy2: power-domain@16 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
+                                       };
+
+                                       pgc_hsiomix: power-domains@17 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_HSIOMIX>;
+                                               clocks = <&clk IMX8MP_CLK_HSIO_AXI>,
+                                                        <&clk IMX8MP_CLK_HSIO_ROOT>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
+                                               assigned-clock-rates = <500000000>;
+                                       };
+
+                                       pgc_ispdwp: power-domain@18 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_MEDIAMIX_ISPDWP>;
+                                               clocks = <&clk IMX8MP_CLK_MEDIA_ISP_DIV>;
+                                       };
+                               };
+                       };
                };
 
                aips2: bus@30400000 {
                                clocks = <&clk IMX8MP_CLK_PWM1_ROOT>,
                                         <&clk IMX8MP_CLK_PWM1_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MP_CLK_PWM2_ROOT>,
                                         <&clk IMX8MP_CLK_PWM2_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MP_CLK_PWM3_ROOT>,
                                         <&clk IMX8MP_CLK_PWM3_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MP_CLK_PWM4_ROOT>,
                                         <&clk IMX8MP_CLK_PWM4_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MP_CLK_UART2_ROOT>,
                                         <&clk IMX8MP_CLK_UART2_ROOT>;
                                clock-names = "ipg", "per";
+                               dmas = <&sdma1 24 4 0>, <&sdma1 25 4 0>;
+                               dma-names = "rx", "tx";
                                status = "disabled";
                        };
 
                        };
 
                        usdhc1: mmc@30b40000 {
-                               compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc";
+                               compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b40000 0x10000>;
                                interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MP_CLK_DUMMY>,
                        };
 
                        usdhc2: mmc@30b50000 {
-                               compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc";
+                               compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b50000 0x10000>;
                                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MP_CLK_DUMMY>,
                        };
 
                        usdhc3: mmc@30b60000 {
-                               compatible = "fsl,imx8mp-usdhc", "fsl,imx7d-usdhc";
+                               compatible = "fsl,imx8mp-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
                                reg = <0x30b60000 0x10000>;
                                interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MP_CLK_DUMMY>,
                        };
                };
 
+               aips4: bus@32c00000 {
+                       compatible = "fsl,aips-bus", "simple-bus";
+                       reg = <0x32c00000 0x400000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+
+                       media_blk_ctrl: blk-ctrl@32ec0000 {
+                               compatible = "fsl,imx8mp-media-blk-ctrl",
+                                            "syscon";
+                               reg = <0x32ec0000 0x10000>;
+                               power-domains = <&pgc_mediamix>,
+                                               <&pgc_mipi_phy1>,
+                                               <&pgc_mipi_phy1>,
+                                               <&pgc_mediamix>,
+                                               <&pgc_mediamix>,
+                                               <&pgc_mipi_phy2>,
+                                               <&pgc_mediamix>,
+                                               <&pgc_ispdwp>,
+                                               <&pgc_ispdwp>,
+                                               <&pgc_mipi_phy2>;
+                               power-domain-names = "bus", "mipi-dsi1", "mipi-csi1",
+                                                    "lcdif1", "isi", "mipi-csi2",
+                                                    "lcdif2", "isp", "dwe",
+                                                    "mipi-dsi2";
+                               clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_AXI_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_CAM2_PIX_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_DISP1_PIX_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_DISP2_PIX_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_ISP_ROOT>,
+                                        <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>;
+                               clock-names = "apb", "axi", "cam1", "cam2",
+                                             "disp1", "disp2", "isp", "phy";
+
+                               assigned-clocks = <&clk IMX8MP_CLK_MEDIA_AXI>,
+                                                 <&clk IMX8MP_CLK_MEDIA_APB>;
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
+                                                        <&clk IMX8MP_SYS_PLL1_800M>;
+                               assigned-clock-rates = <500000000>, <200000000>;
+
+                               #power-domain-cells = <1>;
+                       };
+
+                       hsio_blk_ctrl: blk-ctrl@32f10000 {
+                               compatible = "fsl,imx8mp-hsio-blk-ctrl", "syscon";
+                               reg = <0x32f10000 0x24>;
+                               clocks = <&clk IMX8MP_CLK_USB_ROOT>,
+                                        <&clk IMX8MP_CLK_PCIE_ROOT>;
+                               clock-names = "usb", "pcie";
+                               power-domains = <&pgc_hsiomix>, <&pgc_hsiomix>,
+                                               <&pgc_usb1_phy>, <&pgc_usb2_phy>,
+                                               <&pgc_hsiomix>, <&pgc_pcie_phy>;
+                               power-domain-names = "bus", "usb", "usb-phy1",
+                                                    "usb-phy2", "pcie", "pcie-phy";
+                               #power-domain-cells = <1>;
+                       };
+               };
+
+               gpu3d: gpu@38000000 {
+                       compatible = "vivante,gc";
+                       reg = <0x38000000 0x8000>;
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX8MP_CLK_GPU3D_ROOT>,
+                                <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>,
+                                <&clk IMX8MP_CLK_GPU_ROOT>,
+                                <&clk IMX8MP_CLK_GPU_AHB>;
+                       clock-names = "core", "shader", "bus", "reg";
+                       assigned-clocks = <&clk IMX8MP_CLK_GPU3D_CORE>,
+                                         <&clk IMX8MP_CLK_GPU3D_SHADER_CORE>;
+                       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>,
+                                                <&clk IMX8MP_SYS_PLL1_800M>;
+                       assigned-clock-rates = <800000000>, <800000000>;
+                       power-domains = <&pgc_gpu3d>;
+               };
+
+               gpu2d: gpu@38008000 {
+                       compatible = "vivante,gc";
+                       reg = <0x38008000 0x8000>;
+                       interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX8MP_CLK_GPU2D_ROOT>,
+                                <&clk IMX8MP_CLK_GPU_ROOT>,
+                                <&clk IMX8MP_CLK_GPU_AHB>;
+                       clock-names = "core", "bus", "reg";
+                       assigned-clocks = <&clk IMX8MP_CLK_GPU2D_CORE>;
+                       assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>;
+                       assigned-clock-rates = <800000000>;
+                       power-domains = <&pgc_gpu2d>;
+               };
+
                gic: interrupt-controller@38800000 {
                        compatible = "arm,gic-v3";
                        reg = <0x38800000 0x10000>,
                        interrupt-parent = <&gic>;
                };
 
+               edacmc: memory-controller@3d400000 {
+                       compatible = "snps,ddrc-3.80a";
+                       reg = <0x3d400000 0x400000>;
+                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                ddr-pmu@3d800000 {
                        compatible = "fsl,imx8mp-ddr-pmu", "fsl,imx8m-ddr-pmu";
                        reg = <0x3d800000 0x400000>;
                        clock-names = "phy";
                        assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
                        assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+                       power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB_PHY1>;
                        #phy-cells = <0>;
                        status = "disabled";
                };
                                 <&clk IMX8MP_CLK_USB_ROOT>;
                        clock-names = "hsio", "suspend";
                        interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        dma-ranges = <0x40000000 0x40000000 0xc0000000>;
                                         <&clk IMX8MP_CLK_USB_CORE_REF>,
                                         <&clk IMX8MP_CLK_USB_ROOT>;
                                clock-names = "bus_early", "ref", "suspend";
-                               assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
-                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
-                               assigned-clock-rates = <500000000>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                phys = <&usb3_phy0>, <&usb3_phy0>;
                                phy-names = "usb2-phy", "usb3-phy";
                        clock-names = "phy";
                        assigned-clocks = <&clk IMX8MP_CLK_USB_PHY_REF>;
                        assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+                       power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB_PHY2>;
                        #phy-cells = <0>;
                        status = "disabled";
                };
                                 <&clk IMX8MP_CLK_USB_ROOT>;
                        clock-names = "hsio", "suspend";
                        interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&hsio_blk_ctrl IMX8MP_HSIOBLK_PD_USB>;
                        #address-cells = <1>;
                        #size-cells = <1>;
                        dma-ranges = <0x40000000 0x40000000 0xc0000000>;
                                         <&clk IMX8MP_CLK_USB_CORE_REF>,
                                         <&clk IMX8MP_CLK_USB_ROOT>;
                                clock-names = "bus_early", "ref", "suspend";
-                               assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>;
-                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>;
-                               assigned-clock-rates = <500000000>;
                                interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                                phys = <&usb3_phy1>, <&usb3_phy1>;
                                phy-names = "usb2-phy", "usb3-phy";
index 564746d..a91c136 100644 (file)
 &uart3 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart3>;
-       fsl,uart-has-rtscts;
+       uart-has-rtscts;
        assigned-clocks = <&clk IMX8MQ_CLK_UART3>;
        assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_80M>;
        status = "okay";
index 622f378..b86f188 100644 (file)
@@ -18,7 +18,7 @@
        backlight_dsi: backlight-dsi {
                compatible = "pwm-backlight";
                /* 200 Hz for the PAM2841 */
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 100>;
                num-interpolated-steps = <100>;
                /* Default brightness level (index into the array defined by */
index 30d65be..1056b79 100644 (file)
        led-max-microamp = <25000>;
 };
 
+&lcd_panel {
+       compatible = "ys,ys57pss36bh5gq";
+};
+
 &proximity {
        proximity-near-level = <10>;
 };
index 05c1637..587e55a 100644 (file)
@@ -42,6 +42,7 @@
                        gpios = <&gpio1 17 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEDOWN>;
                        debounce-interval = <50>;
+                       wakeup-source;
                };
 
                vol-up {
@@ -49,6 +50,7 @@
                        gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
                        linux,code = <KEY_VOLUMEUP>;
                        debounce-interval = <50>;
+                       wakeup-source;
                };
        };
 
                };
 
                partition@30000 {
-                       label = "protected1";
-                       reg = <0x30000 0x10000>;
+                       label = "firmware";
+                       reg = <0x30000 0x1d0000>;
                        read-only;
                };
-
-               partition@40000 {
-                       label = "rw";
-                       reg = <0x40000 0x1C0000>;
-               };
        };
 };
 
                fsl,pins = <
                        /* CHRG_INT */
                        MX8MQ_IOMUXC_NAND_CE2_B_GPIO3_IO3       0x80
-                       /* CHG_STATUS_B */
-                       MX8MQ_IOMUXC_NAND_ALE_GPIO3_IO0         0x80
                >;
        };
 
                ti,precharge-current = <130000>; /* uA */
                ti,minimum-sys-voltage = <3700000>; /* uV */
                ti,boost-voltage = <5000000>; /* uV */
-               ti,boost-max-current = <500000>; /* uA */
+               ti,boost-max-current = <1500000>; /* uA */
                ti,use-vinmin-threshold = <1>; /* enable VINDPM */
                ti,vinmin-threshold = <3900000>; /* uV */
                monitored-battery = <&bat>;
index 94a13cb..8956a46 100644 (file)
@@ -18,7 +18,7 @@
                compatible = "pwm-backlight";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_backlight>;
-               pwms = <&pwm2 0 10000>;
+               pwms = <&pwm2 0 10000 0>;
                power-supply = <&reg_main_usb>;
                enable-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
                brightness-levels = <0 32 64 128 160 200 255>;
index 5b3e849..49eadb0 100644 (file)
                clock-output-names = "osc_27m";
        };
 
+       hdmi_phy_27m: clock-hdmi-phy-27m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <27000000>;
+               clock-output-names = "hdmi_phy_27m";
+       };
+
        clk_ext1: clock-ext1 {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                                clocks = <&clk IMX8MQ_CLK_PWM1_ROOT>,
                                         <&clk IMX8MQ_CLK_PWM1_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MQ_CLK_PWM2_ROOT>,
                                         <&clk IMX8MQ_CLK_PWM2_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MQ_CLK_PWM3_ROOT>,
                                         <&clk IMX8MQ_CLK_PWM3_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX8MQ_CLK_PWM4_ROOT>,
                                         <&clk IMX8MQ_CLK_PWM4_ROOT>;
                                clock-names = "ipg", "per";
-                               #pwm-cells = <2>;
+                               #pwm-cells = <3>;
                                status = "disabled";
                        };
 
index 863232a..07d8dd8 100644 (file)
        status = "okay";
 };
 
+&mu_m0 {
+       status = "okay";
+};
+
+&mu1_m0 {
+       status = "okay";
+};
+
 &scu_key {
        status = "okay";
 };
        status = "okay";
 };
 
+&vpu {
+       compatible = "nxp,imx8qxp-vpu";
+       status = "okay";
+};
+
+&vpu_core0 {
+       reg = <0x2d040000 0x10000>;
+       memory-region = <&decoder_boot>, <&decoder_rpc>;
+       status = "okay";
+};
+
+&vpu_core1 {
+       reg = <0x2d050000 0x10000>;
+       memory-region = <&encoder_boot>, <&encoder_rpc>;
+       status = "okay";
+};
+
 &iomuxc {
        pinctrl_fec1: fec1grp {
                fsl,pins = <
index dbec7c1..a79ae33 100644 (file)
@@ -46,6 +46,9 @@
                serial1 = &lpuart1;
                serial2 = &lpuart2;
                serial3 = &lpuart3;
+               vpu_core0 = &vpu_core0;
+               vpu_core1 = &vpu_core1;
+               vpu_core2 = &vpu_core2;
        };
 
        cpus {
                #size-cells = <2>;
                ranges;
 
+               decoder_boot: decoder-boot@84000000 {
+                       reg = <0 0x84000000 0 0x2000000>;
+                       no-map;
+               };
+
+               encoder_boot: encoder-boot@86000000 {
+                       reg = <0 0x86000000 0 0x200000>;
+                       no-map;
+               };
+
+               decoder_rpc: decoder-rpc@92000000 {
+                       reg = <0 0x92000000 0 0x100000>;
+                       no-map;
+               };
+
                dsp_reserved: dsp@92400000 {
                        reg = <0 0x92400000 0 0x2000000>;
                        no-map;
                };
+
+               encoder_rpc: encoder-rpc@94400000 {
+                       reg = <0 0x94400000 0 0x700000>;
+                       no-map;
+               };
        };
 
        pmu {
 
        /* sorted in register address */
        #include "imx8-ss-img.dtsi"
+       #include "imx8-ss-vpu.dtsi"
        #include "imx8-ss-adma.dtsi"
        #include "imx8-ss-conn.dtsi"
        #include "imx8-ss-ddr.dtsi"
index 8bd6d7e..6b3057a 100644 (file)
                        clocks = <&crg_ctrl HI3660_CLK_GATE_UFSIO_REF>,
                                <&crg_ctrl HI3660_CLK_GATE_UFSPHY_CFG>;
                        clock-names = "ref_clk", "phy_clk";
-                       freq-table-hz = <0 0
-                                        0 0>;
+                       freq-table-hz = <0 0>,
+                                       <0 0>;
                        /* offset: 0x84; bit: 12 */
                        resets = <&crg_rst 0x84 12>;
                        reset-names = "rst";
index 636c881..3125c38 100644 (file)
                        clocks = <&crg_ctrl HI3670_CLK_GATE_UFSIO_REF>,
                                 <&crg_ctrl HI3670_CLK_GATE_UFS_SUBSYS>;
                        clock-names = "ref_clk", "phy_clk";
-                       freq-table-hz = <0 0
-                                        0 0>;
+                       freq-table-hz = <0 0>,
+                                       <0 0>;
                        /* offset: 0x84; bit: 12 */
                        resets = <&crg_rst 0x84 12>;
                        reset-names = "rst";
index c783717..caccb03 100644 (file)
                                     <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        resets = <&rst DMA_RESET>, <&rst DMA_OCP_RESET>;
                        reset-names = "dma", "dma-ocp";
                        clocks = <&clkmgr AGILEX_L4_MAIN_CLK>;
index 3e5789f..bd4e61d 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&spi_quad_pins>;
 
-       m25p80@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <108000000>;
index c5eb360..070725b 100644 (file)
 
 &spi0 {
        flash@0 {
-               spi-max-frequency = <108000000>;
-               spi-rx-bus-width = <4>;
-               spi-tx-bus-width = <4>;
-
                partitions {
                        compatible = "fixed-partitions";
                        #address-cells = <1>;
 
 &usb3 {
        usb-phy = <&usb3_phy>;
-       status = "disabled";
 };
 
 &mdio {
        extphy: ethernet-phy@1 {
                reg = <1>;
+
+               reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
        };
 };
 
 &switch0 {
        reg = <3>;
 
+       reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
+
        ports {
                switch0port1: port@1 {
                        reg = <1>;
index 98c9a32..caf9c85 100644 (file)
        assigned-clock-parents = <&tbg 1>;
        assigned-clock-rates = <20000000>;
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 95d46e8..a35317d 100644 (file)
@@ -99,7 +99,7 @@
        pinctrl-names = "default";
        pinctrl-0 = <&spi_quad_pins>;
 
-       m25p80@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <54000000>;
                        compatible = "fixed-partitions";
                        #address-cells = <1>;
                        #size-cells = <1>;
-                       /* only bootloader is located on the SPI */
+
                        partition@0 {
-                               label = "uboot";
-                               reg = <0 0x400000>;
+                               label = "firmware";
+                               reg = <0x0 0x180000>;
+                       };
+
+                       partition@180000 {
+                               label = "u-boot-env";
+                               reg = <0x180000 0x10000>;
                        };
                };
        };
        scl-gpios = <&gpionb 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        sda-gpios = <&gpionb 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 
-       lm75@48 {
+       nct375@48 {
                status = "okay";
-               compatible = "lm75";
+               compatible = "ti,tmp75c";
                reg = <0x48>;
        };
 
-       lm75@49 {
+       nct375@49 {
                status = "okay";
-               compatible = "lm75";
+               compatible = "ti,tmp75c";
                reg = <0x49>;
        };
 };
index 8c8bb97..df152c7 100644 (file)
                                #mbox-cells = <1>;
                        };
 
-                       sdhci1: sdhci@d0000 {
+                       sdhci1: mmc@d0000 {
                                compatible = "marvell,armada-3700-sdhci",
                                             "marvell,sdhci-xenon";
                                reg = <0xd0000 0x300>,
                                status = "disabled";
                        };
 
-                       sdhci0: sdhci@d8000 {
+                       sdhci0: mmc@d8000 {
                                compatible = "marvell,armada-3700-sdhci",
                                             "marvell,sdhci-xenon";
                                reg = <0xd8000 0x300>,
index cd326fe..5e5baf6 100644 (file)
@@ -83,7 +83,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <10000000>;
 &cp0_spi1 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <20000000>;
index f3b0d57..39a8e5e 100644 (file)
        pinctrl-names = "default";
        pinctrl-0 = <&cp0_spi1_pins>;
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 8729c64..871f84b 100644 (file)
        pinctrl-0 = <&cp1_spi1_pins>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "st,w25q32";
                spi-max-frequency = <50000000>;
                reg = <0>;
index f2e8e0d..92897bd 100644 (file)
@@ -72,7 +72,7 @@
 &spi0 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <10000000>;
 &cp1_spi1 {
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-max-frequency = <20000000>;
index adbfecc..779cf16 100644 (file)
        pinctrl-0 = <&cp1_spi1_pins>;
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                compatible = "st,w25q32";
                spi-max-frequency = <50000000>;
                reg = <0>;
index dac85fa..74bed79 100644 (file)
 
 &spi0 {
        status = "okay";
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
index 6614472..a06a0a8 100644 (file)
                                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
                        };
 
-                       ap_sdhci0: sdhci@6e0000 {
+                       ap_sdhci0: mmc@6e0000 {
                                compatible = "marvell,armada-ap806-sdhci";
                                reg = <0x6e0000 0x300>;
                                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
index 3bd2182..d6c0990 100644 (file)
                        status = "okay";
                };
 
-               CP11X_LABEL(sdhci0): sdhci@780000 {
+               CP11X_LABEL(sdhci0): mmc@780000 {
                        compatible = "marvell,armada-cp110-sdhci";
                        reg = <0x780000 0x300>;
                        interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
index d9f9f2c..1acd746 100644 (file)
              <0x2000000 0x1000000>;    /* CS0 */
        status = "okay";
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
index c00b69b..7e20987 100644 (file)
        pinctrl-0 = <&cp0_spi0_pins>;
        reg = <0x700680 0x50>;
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
index f995b1b..b7fc241 100644 (file)
        pinctrl-0 = <&cp1_spi0_pins>;
        reg = <0x700680 0x50>;
 
-       spi-flash@0 {
+       flash@0 {
                #address-cells = <0x1>;
                #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
index 8c1e180..c7d4636 100644 (file)
@@ -38,4 +38,6 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku0.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-kukui-krane-sku176.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8183-pumpkin.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8192-evb.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-demo.dtb
+dtb-$(CONFIG_ARCH_MEDIATEK) += mt8195-evb.dtb
 dtb-$(CONFIG_ARCH_MEDIATEK) += mt8516-pumpkin.dtb
index a27b762..623eb3b 100644 (file)
@@ -19,7 +19,7 @@
        #address-cells = <2>;
        #size-cells = <2>;
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
                opp00 {
@@ -36,7 +36,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
                opp00 {
                interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&infracfg CLK_INFRA_M4U>;
                clock-names = "bclk";
-               mediatek,larbs = <&larb0 &larb1 &larb2
-                                 &larb3 &larb6>;
+               mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
+                                <&larb3>, <&larb6>;
                #iommu-cells = <1>;
        };
 
                interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_LOW>;
                clocks = <&infracfg CLK_INFRA_M4U>;
                clock-names = "bclk";
-               mediatek,larbs = <&larb4 &larb5 &larb7>;
+               mediatek,larbs = <&larb4>, <&larb5>, <&larb7>;
                #iommu-cells = <1>;
        };
 
diff --git a/arch/arm64/boot/dts/mediatek/mt6359.dtsi b/arch/arm64/boot/dts/mediatek/mt6359.dtsi
new file mode 100644 (file)
index 0000000..df3e822
--- /dev/null
@@ -0,0 +1,298 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2022 MediaTek Inc.
+ */
+
+&pwrap {
+       pmic: pmic {
+               compatible = "mediatek,mt6359";
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               mt6359codec: mt6359codec {
+               };
+
+               regulators {
+                       mt6359_vs1_buck_reg: buck_vs1 {
+                               regulator-name = "vs1";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <2200000>;
+                               regulator-enable-ramp-delay = <0>;
+                               regulator-always-on;
+                       };
+                       mt6359_vgpu11_buck_reg: buck_vgpu11 {
+                               regulator-name = "vgpu11";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-enable-ramp-delay = <200>;
+                               regulator-allowed-modes = <0 1 2>;
+                       };
+                       mt6359_vmodem_buck_reg: buck_vmodem {
+                               regulator-name = "vmodem";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-ramp-delay = <10760>;
+                               regulator-enable-ramp-delay = <200>;
+                       };
+                       mt6359_vpu_buck_reg: buck_vpu {
+                               regulator-name = "vpu";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-enable-ramp-delay = <200>;
+                               regulator-allowed-modes = <0 1 2>;
+                       };
+                       mt6359_vcore_buck_reg: buck_vcore {
+                               regulator-name = "vcore";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-enable-ramp-delay = <200>;
+                               regulator-allowed-modes = <0 1 2>;
+                       };
+                       mt6359_vs2_buck_reg: buck_vs2 {
+                               regulator-name = "vs2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1600000>;
+                               regulator-enable-ramp-delay = <0>;
+                               regulator-always-on;
+                       };
+                       mt6359_vpa_buck_reg: buck_vpa {
+                               regulator-name = "vpa";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <3650000>;
+                               regulator-enable-ramp-delay = <300>;
+                       };
+                       mt6359_vproc2_buck_reg: buck_vproc2 {
+                               regulator-name = "vproc2";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-ramp-delay = <7500>;
+                               regulator-enable-ramp-delay = <200>;
+                               regulator-allowed-modes = <0 1 2>;
+                       };
+                       mt6359_vproc1_buck_reg: buck_vproc1 {
+                               regulator-name = "vproc1";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1193750>;
+                               regulator-ramp-delay = <7500>;
+                               regulator-enable-ramp-delay = <200>;
+                               regulator-allowed-modes = <0 1 2>;
+                       };
+                       mt6359_vcore_sshub_buck_reg: buck_vcore_sshub {
+                               regulator-name = "vcore_sshub";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1193750>;
+                       };
+                       mt6359_vgpu11_sshub_buck_reg: buck_vgpu11_sshub {
+                               regulator-name = "vgpu11_sshub";
+                               regulator-min-microvolt = <400000>;
+                               regulator-max-microvolt = <1193750>;
+                       };
+                       mt6359_vaud18_ldo_reg: ldo_vaud18 {
+                               regulator-name = "vaud18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <240>;
+                       };
+                       mt6359_vsim1_ldo_reg: ldo_vsim1 {
+                               regulator-name = "vsim1";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <3100000>;
+                       };
+                       mt6359_vibr_ldo_reg: ldo_vibr {
+                               regulator-name = "vibr";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       mt6359_vrf12_ldo_reg: ldo_vrf12 {
+                               regulator-name = "vrf12";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1300000>;
+                       };
+                       mt6359_vusb_ldo_reg: ldo_vusb {
+                               regulator-name = "vusb";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-enable-ramp-delay = <960>;
+                               regulator-always-on;
+                       };
+                       mt6359_vsram_proc2_ldo_reg: ldo_vsram_proc2 {
+                               regulator-name = "vsram_proc2";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1293750>;
+                               regulator-ramp-delay = <7500>;
+                               regulator-enable-ramp-delay = <240>;
+                               regulator-always-on;
+                       };
+                       mt6359_vio18_ldo_reg: ldo_vio18 {
+                               regulator-name = "vio18";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <1900000>;
+                               regulator-enable-ramp-delay = <960>;
+                               regulator-always-on;
+                       };
+                       mt6359_vcamio_ldo_reg: ldo_vcamio {
+                               regulator-name = "vcamio";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <1900000>;
+                       };
+                       mt6359_vcn18_ldo_reg: ldo_vcn18 {
+                               regulator-name = "vcn18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <240>;
+                       };
+                       mt6359_vfe28_ldo_reg: ldo_vfe28 {
+                               regulator-name = "vfe28";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <120>;
+                       };
+                       mt6359_vcn13_ldo_reg: ldo_vcn13 {
+                               regulator-name = "vcn13";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1300000>;
+                       };
+                       mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1_bt {
+                               regulator-name = "vcn33_1_bt";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <3500000>;
+                       };
+                       mt6359_vcn33_1_wifi_ldo_reg: ldo_vcn33_1_wifi {
+                               regulator-name = "vcn33_1_wifi";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <3500000>;
+                       };
+                       mt6359_vaux18_ldo_reg: ldo_vaux18 {
+                               regulator-name = "vaux18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-enable-ramp-delay = <240>;
+                               regulator-always-on;
+                       };
+                       mt6359_vsram_others_ldo_reg: ldo_vsram_others {
+                               regulator-name = "vsram_others";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1293750>;
+                               regulator-ramp-delay = <5000>;
+                               regulator-enable-ramp-delay = <240>;
+                       };
+                       mt6359_vefuse_ldo_reg: ldo_vefuse {
+                               regulator-name = "vefuse";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <2000000>;
+                       };
+                       mt6359_vxo22_ldo_reg: ldo_vxo22 {
+                               regulator-name = "vxo22";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <2200000>;
+                               regulator-always-on;
+                       };
+                       mt6359_vrfck_ldo_reg: ldo_vrfck {
+                               regulator-name = "vrfck";
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <1700000>;
+                       };
+                       mt6359_vrfck_1_ldo_reg: ldo_vrfck_1 {
+                               regulator-name = "vrfck";
+                               regulator-min-microvolt = <1240000>;
+                               regulator-max-microvolt = <1600000>;
+                       };
+                       mt6359_vbif28_ldo_reg: ldo_vbif28 {
+                               regulator-name = "vbif28";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-enable-ramp-delay = <240>;
+                       };
+                       mt6359_vio28_ldo_reg: ldo_vio28 {
+                               regulator-name = "vio28";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-always-on;
+                       };
+                       mt6359_vemc_ldo_reg: ldo_vemc {
+                               regulator-name = "vemc";
+                               regulator-min-microvolt = <2900000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       mt6359_vemc_1_ldo_reg: ldo_vemc_1 {
+                               regulator-name = "vemc";
+                               regulator-min-microvolt = <2500000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+                       mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2_bt {
+                               regulator-name = "vcn33_2_bt";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <3500000>;
+                       };
+                       mt6359_vcn33_2_wifi_ldo_reg: ldo_vcn33_2_wifi {
+                               regulator-name = "vcn33_2_wifi";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <3500000>;
+                       };
+                       mt6359_va12_ldo_reg: ldo_va12 {
+                               regulator-name = "va12";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-always-on;
+                       };
+                       mt6359_va09_ldo_reg: ldo_va09 {
+                               regulator-name = "va09";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+                       mt6359_vrf18_ldo_reg: ldo_vrf18 {
+                               regulator-name = "vrf18";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <1810000>;
+                       };
+                       mt6359_vsram_md_ldo_reg: ldo_vsram_md {
+                               regulator-name = "vsram_md";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1293750>;
+                               regulator-ramp-delay = <10760>;
+                               regulator-enable-ramp-delay = <240>;
+                       };
+                       mt6359_vufs_ldo_reg: ldo_vufs {
+                               regulator-name = "vufs";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <1900000>;
+                       };
+                       mt6359_vm18_ldo_reg: ldo_vm18 {
+                               regulator-name = "vm18";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <1900000>;
+                               regulator-always-on;
+                       };
+                       mt6359_vbbck_ldo_reg: ldo_vbbck {
+                               regulator-name = "vbbck";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+                       mt6359_vsram_proc1_ldo_reg: ldo_vsram_proc1 {
+                               regulator-name = "vsram_proc1";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1293750>;
+                               regulator-ramp-delay = <7500>;
+                               regulator-enable-ramp-delay = <240>;
+                               regulator-always-on;
+                       };
+                       mt6359_vsim2_ldo_reg: ldo_vsim2 {
+                               regulator-name = "vsim2";
+                               regulator-min-microvolt = <1700000>;
+                               regulator-max-microvolt = <3100000>;
+                       };
+                       mt6359_vsram_others_sshub_ldo: ldo_vsram_others_sshub {
+                               regulator-name = "vsram_others_sshub";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1293750>;
+                       };
+               };
+
+               mt6359rtc: mt6359rtc {
+                       compatible = "mediatek,mt6358-rtc";
+               };
+       };
+};
index f232f8b..dbcee8b 100644 (file)
@@ -80,6 +80,7 @@
                        enable-method = "psci";
                        clock-frequency = <1300000000>;
                        cci-control-port = <&cci_control2>;
+                       next-level-cache = <&L2>;
                };
 
                cpu1: cpu@1 {
                        enable-method = "psci";
                        clock-frequency = <1300000000>;
                        cci-control-port = <&cci_control2>;
+                       next-level-cache = <&L2>;
+               };
+
+               L2: l2-cache {
+                       compatible = "cache";
+                       cache-level = <2>;
                };
        };
 
                status = "disabled";
        };
 
+       snfi: spi@1100d000 {
+               compatible = "mediatek,mt7622-snand";
+               reg = <0 0x1100d000 0 0x1000>;
+               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
+               clocks = <&pericfg CLK_PERI_NFI_PD>, <&pericfg CLK_PERI_SNFI_PD>;
+               clock-names = "nfi_clk", "pad_clk";
+               nand-ecc-engine = <&bch>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               status = "disabled";
+       };
+
        bch: ecc@1100e000 {
                compatible = "mediatek,mt7622-ecc";
                reg = <0 0x1100e000 0 0x1000>;
                clock-names = "hsdma";
                power-domains = <&scpsys MT7622_POWER_DOMAIN_ETHSYS>;
                #dma-cells = <1>;
+               dma-requests = <3>;
        };
 
        pcie_mirror: pcie-mirror@10000400 {
index 9029051..54655f2 100644 (file)
                iommu: m4u@10203000 {
                        compatible = "mediatek,mt8167-m4u";
                        reg = <0 0x10203000 0 0x1000>;
-                       mediatek,larbs = <&larb0 &larb1 &larb2>;
+                       mediatek,larbs = <&larb0>, <&larb1>, <&larb2>;
                        interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_LOW>;
                        #iommu-cells = <1>;
                };
index 2b7d331..40d7b47 100644 (file)
@@ -57,7 +57,7 @@
                serial3 = &uart3;
        };
 
-       cluster0_opp: opp_table0 {
+       cluster0_opp: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
                opp-507000000 {
@@ -94,7 +94,7 @@
                };
        };
 
-       cluster1_opp: opp_table1 {
+       cluster1_opp: opp-table-1 {
                compatible = "operating-points-v2";
                opp-shared;
                opp-507000000 {
        };
 
        thermal-zones {
-               cpu_thermal: cpu_thermal {
+               cpu_thermal: cpu-thermal {
                        polling-delay-passive = <1000>; /* milliseconds */
                        polling-delay = <1000>; /* milliseconds */
 
                        interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_LOW>;
                        clocks = <&infracfg CLK_INFRA_M4U>;
                        clock-names = "bclk";
-                       mediatek,larbs = <&larb0 &larb1 &larb2
-                                         &larb3 &larb4 &larb5>;
+                       mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
+                                        <&larb3>, <&larb4>, <&larb5>;
                        #iommu-cells = <1>;
                };
 
                                 <&mmsys CLK_MM_MUTEX_32K>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        iommus = <&iommu M4U_PORT_MDP_RDMA0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,vpu = <&vpu>;
                };
 
                                 <&mmsys CLK_MM_MUTEX_32K>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        iommus = <&iommu M4U_PORT_MDP_RDMA1>;
-                       mediatek,larb = <&larb4>;
                };
 
                mdp_rsz0: rsz@14003000 {
                        clocks = <&mmsys CLK_MM_MDP_WDMA>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        iommus = <&iommu M4U_PORT_MDP_WDMA>;
-                       mediatek,larb = <&larb0>;
                };
 
                mdp_wrot0: wrot@14007000 {
                        clocks = <&mmsys CLK_MM_MDP_WROT0>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        iommus = <&iommu M4U_PORT_MDP_WROT0>;
-                       mediatek,larb = <&larb0>;
                };
 
                mdp_wrot1: wrot@14008000 {
                        clocks = <&mmsys CLK_MM_MDP_WROT1>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        iommus = <&iommu M4U_PORT_MDP_WROT1>;
-                       mediatek,larb = <&larb4>;
                };
 
                ovl0: ovl@1400c000 {
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_OVL0>;
                        iommus = <&iommu M4U_PORT_DISP_OVL0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
                };
 
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_OVL1>;
                        iommus = <&iommu M4U_PORT_DISP_OVL1>;
-                       mediatek,larb = <&larb4>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xd000 0x1000>;
                };
 
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_RDMA0>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xe000 0x1000>;
                };
 
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_RDMA1>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA1>;
-                       mediatek,larb = <&larb4>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xf000 0x1000>;
                };
 
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_RDMA2>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA2>;
-                       mediatek,larb = <&larb4>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0 0x1000>;
                };
 
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_WDMA0>;
                        iommus = <&iommu M4U_PORT_DISP_WDMA0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x1000 0x1000>;
                };
 
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_DISP_WDMA1>;
                        iommus = <&iommu M4U_PORT_DISP_WDMA1>;
-                       mediatek,larb = <&larb4>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1401XXXX 0x2000 0x1000>;
                };
 
                        interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&spm MT8173_POWER_DOMAIN_MM>;
                        clocks = <&mmsys CLK_MM_MUTEX_32K>;
+                       mediatek,gce-client-reg = <&gce SUBSYS_1402XXXX 0 0x1000>;
                        mediatek,gce-events = <CMDQ_EVENT_MUTEX0_STREAM_EOF>,
                                               <CMDQ_EVENT_MUTEX1_STREAM_EOF>;
                };
                              <0 0x16027800 0 0x800>,   /* VDEC_HWB */
                              <0 0x16028400 0 0x400>;   /* VDEC_HWG */
                        interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_LOW>;
-                       mediatek,larb = <&larb1>;
                        iommus = <&iommu M4U_PORT_HW_VDEC_MC_EXT>,
                                 <&iommu M4U_PORT_HW_VDEC_PP_EXT>,
                                 <&iommu M4U_PORT_HW_VDEC_AVC_MV_EXT>,
                        compatible = "mediatek,mt8173-vcodec-enc";
                        reg = <0 0x18002000 0 0x1000>;  /* VENC_SYS */
                        interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
-                       mediatek,larb = <&larb3>;
                        iommus = <&iommu M4U_PORT_VENC_RCPU>,
                                 <&iommu M4U_PORT_VENC_REC>,
                                 <&iommu M4U_PORT_VENC_BSDMA>,
                        clock-names = "venc_sel";
                        assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>;
                        assigned-clock-parents = <&topckgen CLK_TOP_VCODECPLL>;
+                       power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC>;
                };
 
                jpegdec: jpegdec@18004000 {
                        clock-names = "jpgdec-smi",
                                      "jpgdec";
                        power-domains = <&spm MT8173_POWER_DOMAIN_VENC>;
-                       mediatek,larb = <&larb3>;
                        iommus = <&iommu M4U_PORT_JPGDEC_WDMA>,
                                 <&iommu M4U_PORT_JPGDEC_BSDMA>;
                };
                                 <&iommu M4U_PORT_VENC_CUR_CHROMA_SET2>,
                                 <&iommu M4U_PORT_VENC_REF_LUMA_SET2>,
                                 <&iommu M4U_PORT_VENC_REC_CHROMA_SET2>;
-                       mediatek,larb = <&larb5>;
                        mediatek,vpu = <&vpu>;
                        clocks = <&topckgen CLK_TOP_VENC_LT_SEL>;
                        clock-names = "venc_lt_sel";
                        assigned-clocks = <&topckgen CLK_TOP_VENC_LT_SEL>;
                        assigned-clock-parents =
                                 <&topckgen CLK_TOP_VCODECPLL_370P5>;
+                       power-domains = <&scpsys MT8173_POWER_DOMAIN_VENC_LT>;
                };
        };
 };
index 8f7bf33..2d7a193 100644 (file)
@@ -92,7 +92,7 @@
 };
 
 &cros_ec {
-       cros_ec_pwm: ec-pwm {
+       cros_ec_pwm: pwm {
                compatible = "google,cros-ec-pwm";
                #pwm-cells = <1>;
                status = "disabled";
index 0f9480f..8d5bf73 100644 (file)
        mediatek,pad-select = <0>;
        status = "okay";
 
-       w25q64dw: spi-flash@0 {
+       w25q64dw: flash@0 {
                compatible = "winbond,w25q64dw", "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <25000000>;
index ee91282..afeb5cd 100644 (file)
@@ -55,7 +55,7 @@
                };
        };
 
-       ntc {
+       thermistor {
                compatible = "murata,ncp03wf104";
                pullup-uv = <1800000>;
                pullup-ohm = <390000>;
index 4b08691..01e6502 100644 (file)
                };
        };
 
-       gpu_opp_table: opp_table0 {
+       gpu_opp_table: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
 
                        compatible = "mediatek,mt8183-m4u";
                        reg = <0 0x10205000 0 0x1000>;
                        interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_LOW>;
-                       mediatek,larbs = <&larb0 &larb1 &larb2 &larb3
-                                         &larb4 &larb5 &larb6>;
+                       mediatek,larbs = <&larb0>, <&larb1>, <&larb2>, <&larb3>,
+                                        <&larb4>, <&larb5>, <&larb6>;
                        #iommu-cells = <1>;
                };
 
                };
 
                thermal_zones: thermal-zones {
-                       cpu_thermal: cpu_thermal {
+                       cpu_thermal: cpu-thermal {
                                polling-delay-passive = <100>;
                                polling-delay = <500>;
                                thermal-sensors = <&thermal 0>;
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        clocks = <&mmsys CLK_MM_DISP_OVL0>;
                        iommus = <&iommu M4U_PORT_DISP_OVL0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x8000 0x1000>;
                };
 
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        clocks = <&mmsys CLK_MM_DISP_OVL0_2L>;
                        iommus = <&iommu M4U_PORT_DISP_2L_OVL0_LARB0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0x9000 0x1000>;
                };
 
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        clocks = <&mmsys CLK_MM_DISP_OVL1_2L>;
                        iommus = <&iommu M4U_PORT_DISP_2L_OVL1_LARB0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xa000 0x1000>;
                };
 
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        clocks = <&mmsys CLK_MM_DISP_RDMA0>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA0>;
-                       mediatek,larb = <&larb0>;
                        mediatek,rdma-fifo-size = <5120>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xb000 0x1000>;
                };
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        clocks = <&mmsys CLK_MM_DISP_RDMA1>;
                        iommus = <&iommu M4U_PORT_DISP_RDMA1>;
-                       mediatek,larb = <&larb0>;
                        mediatek,rdma-fifo-size = <2048>;
                        mediatek,gce-client-reg = <&gce SUBSYS_1400XXXX 0xc000 0x1000>;
                };
                };
 
                aal0: aal@14010000 {
-                       compatible = "mediatek,mt8183-disp-aal",
-                                    "mediatek,mt8173-disp-aal";
+                       compatible = "mediatek,mt8183-disp-aal";
                        reg = <0 0x14010000 0 0x1000>;
                        interrupts = <GIC_SPI 233 IRQ_TYPE_LEVEL_LOW>;
                        power-domains = <&spm MT8183_POWER_DOMAIN_DISP>;
                        compatible = "mediatek,mt8183-jpgenc", "mediatek,mtk-jpgenc";
                        reg = <0 0x17030000 0 0x1000>;
                        interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_LOW>;
-                       mediatek,larb = <&larb4>;
                        iommus = <&iommu M4U_PORT_JPGENC_RDMA>,
                                 <&iommu M4U_PORT_JPGENC_BSDMA>;
                        power-domains = <&spm MT8183_POWER_DOMAIN_VENC>;
index 0205837..808be49 100644 (file)
@@ -5,6 +5,7 @@
  */
 /dts-v1/;
 #include "mt8192.dtsi"
+#include "mt6359.dtsi"
 
 / {
        model = "MediaTek MT8192 evaluation board";
index 411feb2..733aec2 100644 (file)
@@ -8,7 +8,9 @@
 #include <dt-bindings/clock/mt8192-clk.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/memory/mt8192-larb-port.h>
 #include <dt-bindings/pinctrl/mt8192-pinfunc.h>
+#include <dt-bindings/phy/phy.h>
 #include <dt-bindings/power/mt8192-power.h>
 
 / {
                        clock-names = "clk13m";
                };
 
+               pwrap: pwrap@10026000 {
+                       compatible = "mediatek,mt6873-pwrap";
+                       reg = <0 0x10026000 0 0x1000>;
+                       reg-names = "pwrap";
+                       interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg CLK_INFRA_PMIC_AP>,
+                                <&infracfg CLK_INFRA_PMIC_TMR>;
+                       clock-names = "spi", "wrap";
+                       assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
+               };
+
+               spmi: spmi@10027000 {
+                       compatible = "mediatek,mt6873-spmi";
+                       reg = <0 0x10027000 0 0x000e00>,
+                             <0 0x10029000 0 0x000100>;
+                       reg-names = "pmif", "spmimst";
+                       clocks = <&infracfg CLK_INFRA_PMIC_AP>,
+                                <&infracfg CLK_INFRA_PMIC_TMR>,
+                                <&topckgen CLK_TOP_SPMI_MST_SEL>;
+                       clock-names = "pmif_sys_ck",
+                                     "pmif_tmr_ck",
+                                     "spmimst_clk_mux";
+                       assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC_SEL>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_OSC_D10>;
+               };
+
                scp_adsp: clock-controller@10720000 {
                        compatible = "mediatek,mt8192-scp_adsp";
                        reg = <0 0x10720000 0 0x1000>;
                        status = "disabled";
                };
 
+               scp: scp@10500000 {
+                       compatible = "mediatek,mt8192-scp";
+                       reg = <0 0x10500000 0 0x100000>,
+                             <0 0x10720000 0 0xe0000>,
+                             <0 0x10700000 0 0x8000>;
+                       reg-names = "sram", "cfg", "l1tcm";
+                       interrupts = <GIC_SPI 435 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg CLK_INFRA_SCPSYS>;
+                       clock-names = "main";
+                       status = "disabled";
+               };
+
+               xhci: usb@11200000 {
+                       compatible = "mediatek,mt8192-xhci",
+                                    "mediatek,mtk-xhci";
+                       reg = <0 0x11200000 0 0x1000>,
+                             <0 0x11203e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts-extended = <&gic GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH 0>;
+                       interrupt-names = "host";
+                       phys = <&u2port0 PHY_TYPE_USB2>,
+                              <&u3port0 PHY_TYPE_USB3>;
+                       assigned-clocks = <&topckgen CLK_TOP_USB_TOP_SEL>,
+                                         <&topckgen CLK_TOP_SSUSB_XHCI_SEL>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&infracfg CLK_INFRA_SSUSB>,
+                                <&infracfg CLK_INFRA_SSUSB_XHCI>,
+                                <&apmixedsys CLK_APMIXED_USBPLL>;
+                       clock-names = "sys_ck", "xhci_ck", "ref_ck";
+                       wakeup-source;
+                       mediatek,syscon-wakeup = <&pericfg 0x420 102>;
+                       status = "disabled";
+               };
+
+               audsys: syscon@11210000 {
+                       compatible = "mediatek,mt8192-audsys", "syscon";
+                       reg = <0 0x11210000 0 0x2000>;
+                       #clock-cells = <1>;
+
+                       afe: mt8192-afe-pcm {
+                               compatible = "mediatek,mt8192-audio";
+                               interrupts = <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH 0>;
+                               resets = <&watchdog 17>;
+                               reset-names = "audiosys";
+                               mediatek,apmixedsys = <&apmixedsys>;
+                               mediatek,infracfg = <&infracfg>;
+                               mediatek,topckgen = <&topckgen>;
+                               power-domains = <&spm MT8192_POWER_DOMAIN_AUDIO>;
+                               clocks = <&audsys CLK_AUD_AFE>,
+                                        <&audsys CLK_AUD_DAC>,
+                                        <&audsys CLK_AUD_DAC_PREDIS>,
+                                        <&audsys CLK_AUD_ADC>,
+                                        <&audsys CLK_AUD_ADDA6_ADC>,
+                                        <&audsys CLK_AUD_22M>,
+                                        <&audsys CLK_AUD_24M>,
+                                        <&audsys CLK_AUD_APLL_TUNER>,
+                                        <&audsys CLK_AUD_APLL2_TUNER>,
+                                        <&audsys CLK_AUD_TDM>,
+                                        <&audsys CLK_AUD_TML>,
+                                        <&audsys CLK_AUD_NLE>,
+                                        <&audsys CLK_AUD_DAC_HIRES>,
+                                        <&audsys CLK_AUD_ADC_HIRES>,
+                                        <&audsys CLK_AUD_ADC_HIRES_TML>,
+                                        <&audsys CLK_AUD_ADDA6_ADC_HIRES>,
+                                        <&audsys CLK_AUD_3RD_DAC>,
+                                        <&audsys CLK_AUD_3RD_DAC_PREDIS>,
+                                        <&audsys CLK_AUD_3RD_DAC_TML>,
+                                        <&audsys CLK_AUD_3RD_DAC_HIRES>,
+                                        <&infracfg CLK_INFRA_AUDIO>,
+                                        <&infracfg CLK_INFRA_AUDIO_26M_B>,
+                                        <&topckgen CLK_TOP_AUDIO_SEL>,
+                                        <&topckgen CLK_TOP_AUD_INTBUS_SEL>,
+                                        <&topckgen CLK_TOP_MAINPLL_D4_D4>,
+                                        <&topckgen CLK_TOP_AUD_1_SEL>,
+                                        <&topckgen CLK_TOP_APLL1>,
+                                        <&topckgen CLK_TOP_AUD_2_SEL>,
+                                        <&topckgen CLK_TOP_APLL2>,
+                                        <&topckgen CLK_TOP_AUD_ENGEN1_SEL>,
+                                        <&topckgen CLK_TOP_APLL1_D4>,
+                                        <&topckgen CLK_TOP_AUD_ENGEN2_SEL>,
+                                        <&topckgen CLK_TOP_APLL2_D4>,
+                                        <&topckgen CLK_TOP_APLL_I2S0_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S1_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S2_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S3_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S4_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S5_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S6_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S7_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S8_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL_I2S9_M_SEL>,
+                                        <&topckgen CLK_TOP_APLL12_DIV0>,
+                                        <&topckgen CLK_TOP_APLL12_DIV1>,
+                                        <&topckgen CLK_TOP_APLL12_DIV2>,
+                                        <&topckgen CLK_TOP_APLL12_DIV3>,
+                                        <&topckgen CLK_TOP_APLL12_DIV4>,
+                                        <&topckgen CLK_TOP_APLL12_DIVB>,
+                                        <&topckgen CLK_TOP_APLL12_DIV5>,
+                                        <&topckgen CLK_TOP_APLL12_DIV6>,
+                                        <&topckgen CLK_TOP_APLL12_DIV7>,
+                                        <&topckgen CLK_TOP_APLL12_DIV8>,
+                                        <&topckgen CLK_TOP_APLL12_DIV9>,
+                                        <&topckgen CLK_TOP_AUDIO_H_SEL>,
+                                        <&clk26m>;
+                               clock-names = "aud_afe_clk",
+                                             "aud_dac_clk",
+                                             "aud_dac_predis_clk",
+                                             "aud_adc_clk",
+                                             "aud_adda6_adc_clk",
+                                             "aud_apll22m_clk",
+                                             "aud_apll24m_clk",
+                                             "aud_apll1_tuner_clk",
+                                             "aud_apll2_tuner_clk",
+                                             "aud_tdm_clk",
+                                             "aud_tml_clk",
+                                             "aud_nle",
+                                             "aud_dac_hires_clk",
+                                             "aud_adc_hires_clk",
+                                             "aud_adc_hires_tml",
+                                             "aud_adda6_adc_hires_clk",
+                                             "aud_3rd_dac_clk",
+                                             "aud_3rd_dac_predis_clk",
+                                             "aud_3rd_dac_tml",
+                                             "aud_3rd_dac_hires_clk",
+                                             "aud_infra_clk",
+                                             "aud_infra_26m_clk",
+                                             "top_mux_audio",
+                                             "top_mux_audio_int",
+                                             "top_mainpll_d4_d4",
+                                             "top_mux_aud_1",
+                                             "top_apll1_ck",
+                                             "top_mux_aud_2",
+                                             "top_apll2_ck",
+                                             "top_mux_aud_eng1",
+                                             "top_apll1_d4",
+                                             "top_mux_aud_eng2",
+                                             "top_apll2_d4",
+                                             "top_i2s0_m_sel",
+                                             "top_i2s1_m_sel",
+                                             "top_i2s2_m_sel",
+                                             "top_i2s3_m_sel",
+                                             "top_i2s4_m_sel",
+                                             "top_i2s5_m_sel",
+                                             "top_i2s6_m_sel",
+                                             "top_i2s7_m_sel",
+                                             "top_i2s8_m_sel",
+                                             "top_i2s9_m_sel",
+                                             "top_apll12_div0",
+                                             "top_apll12_div1",
+                                             "top_apll12_div2",
+                                             "top_apll12_div3",
+                                             "top_apll12_div4",
+                                             "top_apll12_divb",
+                                             "top_apll12_div5",
+                                             "top_apll12_div6",
+                                             "top_apll12_div7",
+                                             "top_apll12_div8",
+                                             "top_apll12_div9",
+                                             "top_mux_audio_h",
+                                             "top_clk26m_clk";
+                       };
+               };
+
+               pcie: pcie@11230000 {
+                       compatible = "mediatek,mt8192-pcie";
+                       device_type = "pci";
+                       reg = <0 0x11230000 0 0x2000>;
+                       reg-names = "pcie-mac";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       clocks = <&infracfg CLK_INFRA_PCIE_PL_P_250M>,
+                                <&infracfg CLK_INFRA_PCIE_TL_26M>,
+                                <&infracfg CLK_INFRA_PCIE_TL_96M>,
+                                <&infracfg CLK_INFRA_PCIE_TL_32K>,
+                                <&infracfg CLK_INFRA_PCIE_PERI_26M>,
+                                <&infracfg CLK_INFRA_PCIE_TOP_H_133M>;
+                       clock-names = "pl_250m", "tl_26m", "tl_96m",
+                                     "tl_32k", "peri_26m", "top_133m";
+                       assigned-clocks = <&topckgen CLK_TOP_TL_SEL>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D6_D4>;
+                       interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH 0>;
+                       bus-range = <0x00 0xff>;
+                       ranges = <0x82000000 0 0x12000000 0x0 0x12000000 0 0x0800000>,
+                                <0x81000000 0 0x12800000 0x0 0x12800000 0 0x0800000>;
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &pcie_intc0 0>,
+                                       <0 0 0 2 &pcie_intc0 1>,
+                                       <0 0 0 3 &pcie_intc0 2>,
+                                       <0 0 0 4 &pcie_intc0 3>;
+
+                       pcie_intc0: interrupt-controller {
+                               interrupt-controller;
+                               #address-cells = <0>;
+                               #interrupt-cells = <1>;
+                       };
+               };
+
                nor_flash: spi@11234000 {
                        compatible = "mediatek,mt8192-nor";
                        reg = <0 0x11234000 0 0xe0>;
                        assigned-clock-parents = <&clk26m>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       status = "disable";
+                       status = "disabled";
                };
 
-               audsys: clock-controller@11210000 {
-                       compatible = "mediatek,mt8192-audsys", "syscon";
-                       reg = <0 0x11210000 0 0x1000>;
-                       #clock-cells = <1>;
+               efuse: efuse@11c10000 {
+                       compatible = "mediatek,efuse";
+                       reg = <0 0x11c10000 0 0x1000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       lvts_e_data1: data1@1c0 {
+                               reg = <0x1c0 0x58>;
+                       };
+
+                       svs_calibration: calib@580 {
+                               reg = <0x580 0x68>;
+                       };
                };
 
                i2c3: i2c@11cb0000 {
                        #clock-cells = <1>;
                };
 
+               u3phy0: t-phy@11e40000 {
+                       compatible = "mediatek,mt8192-tphy",
+                                    "mediatek,generic-tphy-v2";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x0 0x11e40000 0x1000>;
+
+                       u2port0: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&clk26m>;
+                               clock-names = "ref";
+                               #phy-cells = <1>;
+                       };
+
+                       u3port0: usb-phy@700 {
+                               reg = <0x700 0x900>;
+                               clocks = <&clk26m>;
+                               clock-names = "ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
                i2c0: i2c@11f00000 {
                        compatible = "mediatek,mt8192-i2c";
                        reg = <0 0x11f00000 0 0x1000>,
                        #clock-cells = <1>;
                };
 
-               msdc: clock-controller@11f60000 {
-                       compatible = "mediatek,mt8192-msdc";
-                       reg = <0 0x11f60000 0 0x1000>;
-                       #clock-cells = <1>;
+               mmc0: mmc@11f60000 {
+                       compatible = "mediatek,mt8192-mmc", "mediatek,mt8183-mmc";
+                       reg = <0 0x11f60000 0 0x1000>, <0 0x11f50000 0 0x1000>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>,
+                                <&msdc_top CLK_MSDC_TOP_H_MST_0P>,
+                                <&msdc_top CLK_MSDC_TOP_SRC_0P>,
+                                <&msdc_top CLK_MSDC_TOP_P_CFG>,
+                                <&msdc_top CLK_MSDC_TOP_P_MSDC0>,
+                                <&msdc_top CLK_MSDC_TOP_AXI>,
+                                <&msdc_top CLK_MSDC_TOP_AHB2AXI_BRG_AXI>;
+                       clock-names = "source", "hclk", "source_cg", "sys_cg",
+                                     "pclk_cg", "axi_cg", "ahb_cg";
+                       status = "disabled";
+               };
+
+               mmc1: mmc@11f70000 {
+                       compatible = "mediatek,mt8192-mmc", "mediatek,mt8183-mmc";
+                       reg = <0 0x11f70000 0 0x1000>, <0 0x11c70000 0 0x1000>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC30_1_SEL>,
+                                <&msdc_top CLK_MSDC_TOP_H_MST_1P>,
+                                <&msdc_top CLK_MSDC_TOP_SRC_1P>,
+                                <&msdc_top CLK_MSDC_TOP_P_CFG>,
+                                <&msdc_top CLK_MSDC_TOP_P_MSDC1>,
+                                <&msdc_top CLK_MSDC_TOP_AXI>,
+                                <&msdc_top CLK_MSDC_TOP_AHB2AXI_BRG_AXI>;
+                       clock-names = "source", "hclk", "source_cg", "sys_cg",
+                                     "pclk_cg", "axi_cg", "ahb_cg";
+                       status = "disabled";
                };
 
                mfgcfg: clock-controller@13fbf000 {
                        #clock-cells = <1>;
                };
 
+               smi_common: smi@14002000 {
+                       compatible = "mediatek,mt8192-smi-common";
+                       reg = <0 0x14002000 0 0x1000>;
+                       clocks = <&mmsys CLK_MM_SMI_COMMON>,
+                                <&mmsys CLK_MM_SMI_INFRA>,
+                                <&mmsys CLK_MM_SMI_GALS>,
+                                <&mmsys CLK_MM_SMI_GALS>;
+                       clock-names = "apb", "smi", "gals0", "gals1";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
+               };
+
+               larb0: larb@14003000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x14003000 0 0x1000>;
+                       mediatek,larb-id = <0>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&clk26m>, <&clk26m>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
+               };
+
+               larb1: larb@14004000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x14004000 0 0x1000>;
+                       mediatek,larb-id = <1>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&clk26m>, <&clk26m>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
+               };
+
+               dpi0: dpi@14016000 {
+                       compatible = "mediatek,mt8192-dpi";
+                       reg = <0 0x14016000 0 0x1000>;
+                       interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&mmsys CLK_MM_DPI_DPI0>,
+                                <&mmsys CLK_MM_DISP_DPI0>,
+                                <&apmixedsys CLK_APMIXED_TVDPLL>;
+                       clock-names = "pixel", "engine", "pll";
+                       status = "disabled";
+               };
+
+               iommu0: m4u@1401d000 {
+                       compatible = "mediatek,mt8192-m4u";
+                       reg = <0 0x1401d000 0 0x1000>;
+                       mediatek,larbs = <&larb0>, <&larb1>, <&larb2>,
+                                        <&larb4>, <&larb5>, <&larb7>,
+                                        <&larb9>, <&larb11>, <&larb13>,
+                                        <&larb14>, <&larb16>, <&larb17>,
+                                        <&larb18>, <&larb19>, <&larb20>;
+                       interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&mmsys CLK_MM_SMI_IOMMU>;
+                       clock-names = "bclk";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_DISP>;
+                       #iommu-cells = <1>;
+               };
+
                imgsys: clock-controller@15020000 {
                        compatible = "mediatek,mt8192-imgsys";
                        reg = <0 0x15020000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb9: larb@1502e000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1502e000 0 0x1000>;
+                       mediatek,larb-id = <9>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&imgsys CLK_IMG_LARB9>,
+                                <&imgsys CLK_IMG_LARB9>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_ISP>;
+               };
+
                imgsys2: clock-controller@15820000 {
                        compatible = "mediatek,mt8192-imgsys2";
                        reg = <0 0x15820000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb11: larb@1582e000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1582e000 0 0x1000>;
+                       mediatek,larb-id = <11>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&imgsys2 CLK_IMG2_LARB11>,
+                                <&imgsys2 CLK_IMG2_LARB11>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_ISP2>;
+               };
+
+               larb5: larb@1600d000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1600d000 0 0x1000>;
+                       mediatek,larb-id = <5>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&vdecsys_soc CLK_VDEC_SOC_LARB1>,
+                                <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
+               };
+
                vdecsys_soc: clock-controller@1600f000 {
                        compatible = "mediatek,mt8192-vdecsys_soc";
                        reg = <0 0x1600f000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb4: larb@1602e000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1602e000 0 0x1000>;
+                       mediatek,larb-id = <4>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&vdecsys CLK_VDEC_SOC_LARB1>,
+                                <&vdecsys CLK_VDEC_SOC_LARB1>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
+               };
+
                vdecsys: clock-controller@1602f000 {
                        compatible = "mediatek,mt8192-vdecsys";
                        reg = <0 0x1602f000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb7: larb@17010000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x17010000 0 0x1000>;
+                       mediatek,larb-id = <7>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&vencsys CLK_VENC_SET0_LARB>,
+                                <&vencsys CLK_VENC_SET1_VENC>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_VENC>;
+               };
+
+               vcodec_enc: vcodec@17020000 {
+                       compatible = "mediatek,mt8192-vcodec-enc";
+                       reg = <0 0x17020000 0 0x2000>;
+                       iommus = <&iommu0 M4U_PORT_L7_VENC_RCPU>,
+                                <&iommu0 M4U_PORT_L7_VENC_REC>,
+                                <&iommu0 M4U_PORT_L7_VENC_BSDMA>,
+                                <&iommu0 M4U_PORT_L7_VENC_SV_COMV>,
+                                <&iommu0 M4U_PORT_L7_VENC_RD_COMV>,
+                                <&iommu0 M4U_PORT_L7_VENC_CUR_LUMA>,
+                                <&iommu0 M4U_PORT_L7_VENC_CUR_CHROMA>,
+                                <&iommu0 M4U_PORT_L7_VENC_REF_LUMA>,
+                                <&iommu0 M4U_PORT_L7_VENC_REF_CHROMA>,
+                                <&iommu0 M4U_PORT_L7_VENC_SUB_R_LUMA>,
+                                <&iommu0 M4U_PORT_L7_VENC_SUB_W_LUMA>;
+                       interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH 0>;
+                       mediatek,scp = <&scp>;
+                       power-domains = <&spm MT8192_POWER_DOMAIN_VENC>;
+                       clocks = <&vencsys CLK_VENC_SET1_VENC>;
+                       clock-names = "venc-set1";
+                       assigned-clocks = <&topckgen CLK_TOP_VENC_SEL>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D4>;
+               };
+
                camsys: clock-controller@1a000000 {
                        compatible = "mediatek,mt8192-camsys";
                        reg = <0 0x1a000000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb13: larb@1a001000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1a001000 0 0x1000>;
+                       mediatek,larb-id = <13>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys CLK_CAM_CAM>,
+                                <&camsys CLK_CAM_LARB13>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_CAM>;
+               };
+
+               larb14: larb@1a002000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1a002000 0 0x1000>;
+                       mediatek,larb-id = <14>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys CLK_CAM_CAM>,
+                                <&camsys CLK_CAM_LARB14>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_CAM>;
+               };
+
+               larb16: larb@1a00f000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1a00f000 0 0x1000>;
+                       mediatek,larb-id = <16>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys_rawa CLK_CAM_RAWA_CAM>,
+                                <&camsys_rawa CLK_CAM_RAWA_LARBX>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWA>;
+               };
+
+               larb17: larb@1a010000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1a010000 0 0x1000>;
+                       mediatek,larb-id = <17>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys_rawb CLK_CAM_RAWB_CAM>,
+                                <&camsys_rawb CLK_CAM_RAWB_LARBX>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWB>;
+               };
+
+               larb18: larb@1a011000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1a011000 0 0x1000>;
+                       mediatek,larb-id = <18>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&camsys_rawc CLK_CAM_RAWC_LARBX>,
+                                <&camsys_rawc CLK_CAM_RAWC_CAM>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_CAM_RAWC>;
+               };
+
                camsys_rawa: clock-controller@1a04f000 {
                        compatible = "mediatek,mt8192-camsys_rawa";
                        reg = <0 0x1a04f000 0 0x1000>;
                        #clock-cells = <1>;
                };
 
+               larb20: larb@1b00f000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1b00f000 0 0x1000>;
+                       mediatek,larb-id = <20>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&ipesys CLK_IPE_SMI_SUBCOM>,
+                                <&ipesys CLK_IPE_LARB20>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_IPE>;
+               };
+
+               larb19: larb@1b10f000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1b10f000 0 0x1000>;
+                       mediatek,larb-id = <19>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&ipesys CLK_IPE_SMI_SUBCOM>,
+                                <&ipesys CLK_IPE_LARB19>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_IPE>;
+               };
+
                mdpsys: clock-controller@1f000000 {
                        compatible = "mediatek,mt8192-mdpsys";
                        reg = <0 0x1f000000 0 0x1000>;
                        #clock-cells = <1>;
                };
+
+               larb2: larb@1f002000 {
+                       compatible = "mediatek,mt8192-smi-larb";
+                       reg = <0 0x1f002000 0 0x1000>;
+                       mediatek,larb-id = <2>;
+                       mediatek,smi = <&smi_common>;
+                       clocks = <&mdpsys CLK_MDP_SMI0>,
+                                <&mdpsys CLK_MDP_SMI0>;
+                       clock-names = "apb", "smi";
+                       power-domains = <&spm MT8192_POWER_DOMAIN_MDP>;
+               };
        };
 };
diff --git a/arch/arm64/boot/dts/mediatek/mt8195-demo.dts b/arch/arm64/boot/dts/mediatek/mt8195-demo.dts
new file mode 100644 (file)
index 0000000..4fbd99e
--- /dev/null
@@ -0,0 +1,450 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2022 BayLibre, SAS.
+ * Author: Fabien Parent <fparent@baylibre.com>
+ */
+/dts-v1/;
+
+#include "mt8195.dtsi"
+#include "mt6359.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
+#include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
+
+/ {
+       model = "MediaTek MT8195 demo board";
+       compatible = "mediatek,mt8195-demo", "mediatek,mt8195";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       firmware {
+               optee {
+                       compatible = "linaro,optee-tz";
+                       method = "smc";
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_keys_pins>;
+
+               key-0 {
+                       gpios = <&pio 106 GPIO_ACTIVE_LOW>;
+                       label = "volume_up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
+               bl31_secmon_reserved: secmon@54600000 {
+                       no-map;
+                       reg = <0 0x54600000 0x0 0x30000>;
+               };
+
+               /* 12 MiB reserved for OP-TEE (BL32)
+                * +-----------------------+ 0x43e0_0000
+                * |      SHMEM 2MiB       |
+                * +-----------------------+ 0x43c0_0000
+                * |        | TA_RAM  8MiB |
+                * + TZDRAM +--------------+ 0x4340_0000
+                * |        | TEE_RAM 2MiB |
+                * +-----------------------+ 0x4320_0000
+                */
+               optee_reserved: optee@43200000 {
+                       no-map;
+                       reg = <0 0x43200000 0 0x00c00000>;
+               };
+       };
+};
+
+&i2c6 {
+       clock-frequency = <400000>;
+       pinctrl-0 = <&i2c6_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       mt6360: pmic@34 {
+               compatible = "mediatek,mt6360";
+               reg = <0x34>;
+               interrupt-controller;
+               interrupts-extended = <&pio 101 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-names = "IRQB";
+
+               charger {
+                       compatible = "mediatek,mt6360-chg";
+                       richtek,vinovp-microvolt = <14500000>;
+
+                       otg_vbus_regulator: usb-otg-vbus-regulator {
+                               regulator-compatible = "usb-otg-vbus";
+                               regulator-name = "usb-otg-vbus";
+                               regulator-min-microvolt = <4425000>;
+                               regulator-max-microvolt = <5825000>;
+                       };
+               };
+
+               regulator {
+                       compatible = "mediatek,mt6360-regulator";
+                       LDO_VIN3-supply = <&mt6360_buck2>;
+
+                       mt6360_buck1: buck1 {
+                               regulator-compatible = "BUCK1";
+                               regulator-name = "mt6360,buck1";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP
+                                                          MT6360_OPMODE_ULP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_buck2: buck2 {
+                               regulator-compatible = "BUCK2";
+                               regulator-name = "mt6360,buck2";
+                               regulator-min-microvolt = <300000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP
+                                                          MT6360_OPMODE_ULP>;
+                               regulator-always-on;
+                       };
+
+                       mt6360_ldo1: ldo1 {
+                               regulator-compatible = "LDO1";
+                               regulator-name = "mt6360,ldo1";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo2: ldo2 {
+                               regulator-compatible = "LDO2";
+                               regulator-name = "mt6360,ldo2";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo3: ldo3 {
+                               regulator-compatible = "LDO3";
+                               regulator-name = "mt6360,ldo3";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo5: ldo5 {
+                               regulator-compatible = "LDO5";
+                               regulator-name = "mt6360,ldo5";
+                               regulator-min-microvolt = <2700000>;
+                               regulator-max-microvolt = <3600000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo6: ldo6 {
+                               regulator-compatible = "LDO6";
+                               regulator-name = "mt6360,ldo6";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <2100000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                       };
+
+                       mt6360_ldo7: ldo7 {
+                               regulator-compatible = "LDO7";
+                               regulator-name = "mt6360,ldo7";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <2100000>;
+                               regulator-allowed-modes = <MT6360_OPMODE_NORMAL
+                                                          MT6360_OPMODE_LP>;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&mmc0 {
+       status = "okay";
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc0_default_pins>;
+       pinctrl-1 = <&mmc0_uhs_pins>;
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       cap-mmc-highspeed;
+       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       cap-mmc-hw-reset;
+       no-sdio;
+       no-sd;
+       hs400-ds-delay = <0x14c11>;
+       vmmc-supply = <&mt6359_vemc_1_ldo_reg>;
+       vqmmc-supply = <&mt6359_vufs_ldo_reg>;
+       non-removable;
+};
+
+&mmc1 {
+       pinctrl-names = "default", "state_uhs";
+       pinctrl-0 = <&mmc1_default_pins>;
+       pinctrl-1 = <&mmc1_uhs_pins>;
+       cd-gpios = <&pio 129 GPIO_ACTIVE_LOW>;
+       bus-width = <4>;
+       max-frequency = <200000000>;
+       cap-sd-highspeed;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       vmmc-supply = <&mt6360_ldo5>;
+       vqmmc-supply = <&mt6360_ldo3>;
+       status = "okay";
+};
+
+&mt6359_vbbck_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vcore_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vgpu11_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vproc1_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vproc2_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vpu_buck_reg {
+       regulator-always-on;
+};
+
+&mt6359_vrf12_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vsram_md_ldo_reg {
+       regulator-always-on;
+};
+
+&mt6359_vsram_others_ldo_reg {
+       regulator-always-on;
+};
+
+&pio {
+       gpio_keys_pins: gpio-keys-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO106__FUNC_GPIO106>;
+                       input-enable;
+               };
+       };
+
+       i2c6_pins: i2c6-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
+                                <PINMUX_GPIO26__FUNC_SCL6>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc0_default_pins: mmc0-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
+                       drive-strength = <MTK_DRIVE_6mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_6mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
+                       drive-strength = <MTK_DRIVE_6mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc0_uhs_pins: mmc0-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>,
+                                <PINMUX_GPIO125__FUNC_MSDC0_DAT1>,
+                                <PINMUX_GPIO124__FUNC_MSDC0_DAT2>,
+                                <PINMUX_GPIO123__FUNC_MSDC0_DAT3>,
+                                <PINMUX_GPIO119__FUNC_MSDC0_DAT4>,
+                                <PINMUX_GPIO118__FUNC_MSDC0_DAT5>,
+                                <PINMUX_GPIO117__FUNC_MSDC0_DAT6>,
+                                <PINMUX_GPIO116__FUNC_MSDC0_DAT7>,
+                                <PINMUX_GPIO121__FUNC_MSDC0_CMD>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-ds {
+                       pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-rst {
+                       pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       mmc1_default_pins: mmc1-default-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+
+               pins-insert {
+                       pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
+                       bias-pull-up;
+               };
+       };
+
+       mmc1_uhs_pins: mmc1-uhs-pins {
+               pins-clk {
+                       pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-down = <MTK_PUPD_SET_R1R0_10>;
+               };
+
+               pins-cmd-dat {
+                       pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>,
+                                <PINMUX_GPIO112__FUNC_MSDC1_DAT0>,
+                                <PINMUX_GPIO113__FUNC_MSDC1_DAT1>,
+                                <PINMUX_GPIO114__FUNC_MSDC1_DAT2>,
+                                <PINMUX_GPIO115__FUNC_MSDC1_DAT3>;
+                       input-enable;
+                       drive-strength = <MTK_DRIVE_8mA>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       uart0_pins: uart0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
+                                <PINMUX_GPIO99__FUNC_URXD0>;
+               };
+       };
+
+       uart1_pins: uart1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO102__FUNC_UTXD1>,
+                                <PINMUX_GPIO103__FUNC_URXD1>;
+               };
+       };
+};
+
+
+&pmic {
+       interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pins>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>;
+       status = "okay";
+};
+
+&u3phy0 {
+       status = "okay";
+};
+
+&u3phy1 {
+       status = "okay";
+};
+
+&u3phy2 {
+       status = "okay";
+};
+
+&u3phy3 {
+       status = "okay";
+};
+
+&xhci0 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       vbus-supply = <&otg_vbus_regulator>;
+       status = "okay";
+};
+
+&xhci1 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&xhci2 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
+
+&xhci3 {
+       vusb33-supply = <&mt6359_vusb_ldo_reg>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8195-evb.dts b/arch/arm64/boot/dts/mediatek/mt8195-evb.dts
new file mode 100644 (file)
index 0000000..db25a51
--- /dev/null
@@ -0,0 +1,181 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ * Author: Seiya Wang <seiya.wang@mediatek.com>
+ */
+/dts-v1/;
+#include "mt8195.dtsi"
+
+/ {
+       model = "MediaTek MT8195 evaluation board";
+       compatible = "mediatek,mt8195-evb", "mediatek,mt8195";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+
+       memory@40000000 {
+               device_type = "memory";
+               reg = <0 0x40000000 0 0x80000000>;
+       };
+};
+
+&auxadc {
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0_pin>;
+       clock-frequency = <100000>;
+       status = "okay";
+};
+
+&i2c1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1_pin>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4_pin>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c6 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c6_pin>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&nor_flash {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&nor_pins_default>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&pio {
+       i2c0_pin: i2c0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO8__FUNC_SDA0>,
+                                <PINMUX_GPIO9__FUNC_SCL0>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       mediatek,drive-strength-adv = <0>;
+                       drive-strength = <6>;
+               };
+       };
+
+       i2c1_pin: i2c1-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO10__FUNC_SDA1>,
+                                <PINMUX_GPIO11__FUNC_SCL1>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       mediatek,drive-strength-adv = <0>;
+                       drive-strength = <6>;
+               };
+       };
+
+       i2c4_pin: i2c4-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO16__FUNC_SDA4>,
+                                <PINMUX_GPIO17__FUNC_SCL4>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+                       mediatek,drive-strength-adv = <7>;
+               };
+       };
+
+       i2c6_pin: i2c6-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO25__FUNC_SDA6>,
+                                <PINMUX_GPIO26__FUNC_SCL6>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       i2c7_pin: i2c7-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO27__FUNC_SCL7>,
+                                <PINMUX_GPIO28__FUNC_SDA7>;
+                       bias-pull-up = <MTK_PUPD_SET_R1R0_01>;
+               };
+       };
+
+       nor_pins_default: nor-pins {
+               pins0 {
+                       pinmux = <PINMUX_GPIO142__FUNC_SPINOR_IO0>,
+                                <PINMUX_GPIO141__FUNC_SPINOR_CK>,
+                                <PINMUX_GPIO143__FUNC_SPINOR_IO1>;
+                       bias-pull-down;
+               };
+
+               pins1 {
+                       pinmux = <PINMUX_GPIO140__FUNC_SPINOR_CS>,
+                                <PINMUX_GPIO130__FUNC_SPINOR_IO2>,
+                                <PINMUX_GPIO131__FUNC_SPINOR_IO3>;
+                       bias-pull-up;
+               };
+       };
+
+       uart0_pin: uart0-pins {
+               pins {
+                       pinmux = <PINMUX_GPIO98__FUNC_UTXD0>,
+                                <PINMUX_GPIO99__FUNC_URXD0>;
+               };
+       };
+};
+
+&u3phy0 {
+       status="okay";
+};
+
+&u3phy1 {
+       status="okay";
+};
+
+&u3phy2 {
+       status="okay";
+};
+
+&u3phy3 {
+       status="okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_pin>;
+       status = "okay";
+};
+
+&xhci0 {
+       status = "okay";
+};
+
+&xhci1 {
+       status = "okay";
+};
+
+&xhci2 {
+       status = "okay";
+};
+
+&xhci3 {
+       /* This controller is connected with a BT device.
+        * Disable usb2 lpm to prevent known issues.
+        */
+       usb2-lpm-disable;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/mediatek/mt8195.dtsi b/arch/arm64/boot/dts/mediatek/mt8195.dtsi
new file mode 100644 (file)
index 0000000..b57e620
--- /dev/null
@@ -0,0 +1,1045 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (c) 2021 MediaTek Inc.
+ * Author: Seiya Wang <seiya.wang@mediatek.com>
+ */
+
+/dts-v1/;
+#include <dt-bindings/clock/mt8195-clk.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/pinctrl/mt8195-pinfunc.h>
+#include <dt-bindings/reset/ti-syscon.h>
+
+/ {
+       compatible = "mediatek,mt8195";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x000>;
+                       enable-method = "psci";
+                       clock-frequency = <1701000000>;
+                       capacity-dmips-mhz = <578>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu1: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       clock-frequency = <1701000000>;
+                       capacity-dmips-mhz = <578>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu2: cpu@200 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x200>;
+                       enable-method = "psci";
+                       clock-frequency = <1701000000>;
+                       capacity-dmips-mhz = <578>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu3: cpu@300 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a55";
+                       reg = <0x300>;
+                       enable-method = "psci";
+                       clock-frequency = <1701000000>;
+                       capacity-dmips-mhz = <578>;
+                       cpu-idle-states = <&cpu_off_l &cluster_off_l>;
+                       next-level-cache = <&l2_0>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu4: cpu@400 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x400>;
+                       enable-method = "psci";
+                       clock-frequency = <2171000000>;
+                       capacity-dmips-mhz = <1024>;
+                       cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+                       next-level-cache = <&l2_1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu5: cpu@500 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x500>;
+                       enable-method = "psci";
+                       clock-frequency = <2171000000>;
+                       capacity-dmips-mhz = <1024>;
+                       cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+                       next-level-cache = <&l2_1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu6: cpu@600 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x600>;
+                       enable-method = "psci";
+                       clock-frequency = <2171000000>;
+                       capacity-dmips-mhz = <1024>;
+                       cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+                       next-level-cache = <&l2_1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu7: cpu@700 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a78";
+                       reg = <0x700>;
+                       enable-method = "psci";
+                       clock-frequency = <2171000000>;
+                       capacity-dmips-mhz = <1024>;
+                       cpu-idle-states = <&cpu_off_b &cluster_off_b>;
+                       next-level-cache = <&l2_1>;
+                       #cooling-cells = <2>;
+               };
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu1>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu2>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu3>;
+                               };
+                       };
+
+                       cluster1 {
+                               core0 {
+                                       cpu = <&cpu4>;
+                               };
+
+                               core1 {
+                                       cpu = <&cpu5>;
+                               };
+
+                               core2 {
+                                       cpu = <&cpu6>;
+                               };
+
+                               core3 {
+                                       cpu = <&cpu7>;
+                               };
+                       };
+               };
+
+               idle-states {
+                       entry-method = "psci";
+
+                       cpu_off_l: cpu-off-l {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x00010001>;
+                               local-timer-stop;
+                               entry-latency-us = <50>;
+                               exit-latency-us = <95>;
+                               min-residency-us = <580>;
+                       };
+
+                       cpu_off_b: cpu-off-b {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x00010001>;
+                               local-timer-stop;
+                               entry-latency-us = <45>;
+                               exit-latency-us = <140>;
+                               min-residency-us = <740>;
+                       };
+
+                       cluster_off_l: cluster-off-l {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x01010002>;
+                               local-timer-stop;
+                               entry-latency-us = <55>;
+                               exit-latency-us = <155>;
+                               min-residency-us = <840>;
+                       };
+
+                       cluster_off_b: cluster-off-b {
+                               compatible = "arm,idle-state";
+                               arm,psci-suspend-param = <0x01010002>;
+                               local-timer-stop;
+                               entry-latency-us = <50>;
+                               exit-latency-us = <200>;
+                               min-residency-us = <1000>;
+                       };
+               };
+
+               l2_0: l2-cache0 {
+                       compatible = "cache";
+                       next-level-cache = <&l3_0>;
+               };
+
+               l2_1: l2-cache1 {
+                       compatible = "cache";
+                       next-level-cache = <&l3_0>;
+               };
+
+               l3_0: l3-cache {
+                       compatible = "cache";
+               };
+       };
+
+       dsu-pmu {
+               compatible = "arm,dsu-pmu";
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH 0>;
+               cpus = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>,
+                      <&cpu4>, <&cpu5>, <&cpu6>, <&cpu7>;
+       };
+
+       clk26m: oscillator-26m {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <26000000>;
+               clock-output-names = "clk26m";
+       };
+
+       clk32k: oscillator-32k {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               clock-output-names = "clk32k";
+       };
+
+       pmu-a55 {
+               compatible = "arm,cortex-a55-pmu";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster0>;
+       };
+
+       pmu-a78 {
+               compatible = "arm,cortex-a78-pmu";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_cluster1>;
+       };
+
+       psci {
+               compatible = "arm,psci-1.0";
+               method = "smc";
+       };
+
+       timer: timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_HIGH 0>;
+       };
+
+       soc {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               compatible = "simple-bus";
+               ranges;
+
+               gic: interrupt-controller@c000000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <4>;
+                       #redistributor-regions = <1>;
+                       interrupt-parent = <&gic>;
+                       interrupt-controller;
+                       reg = <0 0x0c000000 0 0x40000>,
+                             <0 0x0c040000 0 0x200000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH 0>;
+
+                       ppi-partitions {
+                               ppi_cluster0: interrupt-partition-0 {
+                                       affinity = <&cpu0 &cpu1 &cpu2 &cpu3>;
+                               };
+
+                               ppi_cluster1: interrupt-partition-1 {
+                                       affinity = <&cpu4 &cpu5 &cpu6 &cpu7>;
+                               };
+                       };
+               };
+
+               topckgen: syscon@10000000 {
+                       compatible = "mediatek,mt8195-topckgen", "syscon";
+                       reg = <0 0x10000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               infracfg_ao: syscon@10001000 {
+                       compatible = "mediatek,mt8195-infracfg_ao", "syscon", "simple-mfd";
+                       reg = <0 0x10001000 0 0x1000>;
+                       #clock-cells = <1>;
+
+                       infracfg_rst: reset-controller {
+                               compatible = "ti,syscon-reset";
+                               #reset-cells = <1>;
+                               ti,reset-bits = <
+                                       0x140 18 0x144 18 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* pcie */
+                                       0x120 0  0x124 0  0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* thermal */
+                                       0x730 10 0x734 10 0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* thermal */
+                                       0x150 5  0x154 5  0 0 (ASSERT_SET | DEASSERT_SET | STATUS_NONE) /* svs gpu */
+                               >;
+                       };
+               };
+
+               pericfg: syscon@10003000 {
+                       compatible = "mediatek,mt8195-pericfg", "syscon";
+                       reg = <0 0x10003000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               pio: pinctrl@10005000 {
+                       compatible = "mediatek,mt8195-pinctrl";
+                       reg = <0 0x10005000 0 0x1000>,
+                             <0 0x11d10000 0 0x1000>,
+                             <0 0x11d30000 0 0x1000>,
+                             <0 0x11d40000 0 0x1000>,
+                             <0 0x11e20000 0 0x1000>,
+                             <0 0x11eb0000 0 0x1000>,
+                             <0 0x11f40000 0 0x1000>,
+                             <0 0x1000b000 0 0x1000>;
+                       reg-names = "iocfg0", "iocfg_bm", "iocfg_bl",
+                                   "iocfg_br", "iocfg_lm", "iocfg_rb",
+                                   "iocfg_tl", "eint";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pio 0 0 144>;
+                       interrupt-controller;
+                       interrupts = <GIC_SPI 235 IRQ_TYPE_LEVEL_HIGH 0>;
+                       #interrupt-cells = <2>;
+               };
+
+               watchdog: watchdog@10007000 {
+                       compatible = "mediatek,mt8195-wdt",
+                                    "mediatek,mt6589-wdt";
+                       reg = <0 0x10007000 0 0x100>;
+               };
+
+               apmixedsys: syscon@1000c000 {
+                       compatible = "mediatek,mt8195-apmixedsys", "syscon";
+                       reg = <0 0x1000c000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               systimer: timer@10017000 {
+                       compatible = "mediatek,mt8195-timer",
+                                    "mediatek,mt6765-timer";
+                       reg = <0 0x10017000 0 0x1000>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_CLK26M_D2>;
+               };
+
+               pwrap: pwrap@10024000 {
+                       compatible = "mediatek,mt8195-pwrap", "syscon";
+                       reg = <0 0x10024000 0 0x1000>;
+                       reg-names = "pwrap";
+                       interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_PMIC_AP>,
+                                <&infracfg_ao CLK_INFRA_AO_PMIC_TMR>;
+                       clock-names = "spi", "wrap";
+                       assigned-clocks = <&topckgen CLK_TOP_PWRAP_ULPOSC>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_ULPOSC1_D10>;
+               };
+
+               scp_adsp: clock-controller@10720000 {
+                       compatible = "mediatek,mt8195-scp_adsp";
+                       reg = <0 0x10720000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               uart0: serial@11001100 {
+                       compatible = "mediatek,mt8195-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11001100 0 0x100>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART0>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart1: serial@11001200 {
+                       compatible = "mediatek,mt8195-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11001200 0 0x100>;
+                       interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART1>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart2: serial@11001300 {
+                       compatible = "mediatek,mt8195-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11001300 0 0x100>;
+                       interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART2>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart3: serial@11001400 {
+                       compatible = "mediatek,mt8195-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11001400 0 0x100>;
+                       interrupts = <GIC_SPI 723 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART3>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart4: serial@11001500 {
+                       compatible = "mediatek,mt8195-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11001500 0 0x100>;
+                       interrupts = <GIC_SPI 724 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART4>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               uart5: serial@11001600 {
+                       compatible = "mediatek,mt8195-uart",
+                                    "mediatek,mt6577-uart";
+                       reg = <0 0x11001600 0 0x100>;
+                       interrupts = <GIC_SPI 725 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&clk26m>, <&infracfg_ao CLK_INFRA_AO_UART5>;
+                       clock-names = "baud", "bus";
+                       status = "disabled";
+               };
+
+               auxadc: auxadc@11002000 {
+                       compatible = "mediatek,mt8195-auxadc",
+                                    "mediatek,mt8173-auxadc";
+                       reg = <0 0x11002000 0 0x1000>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_AUXADC>;
+                       clock-names = "main";
+                       #io-channel-cells = <1>;
+                       status = "disabled";
+               };
+
+               pericfg_ao: syscon@11003000 {
+                       compatible = "mediatek,mt8195-pericfg_ao", "syscon";
+                       reg = <0 0x11003000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               spi0: spi@1100a000 {
+                       compatible = "mediatek,mt8195-spi",
+                                    "mediatek,mt6765-spi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x1100a000 0 0x1000>;
+                       interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI0>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi1: spi@11010000 {
+                       compatible = "mediatek,mt8195-spi",
+                                    "mediatek,mt6765-spi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11010000 0 0x1000>;
+                       interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI1>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi2: spi@11012000 {
+                       compatible = "mediatek,mt8195-spi",
+                                    "mediatek,mt6765-spi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11012000 0 0x1000>;
+                       interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI2>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi3: spi@11013000 {
+                       compatible = "mediatek,mt8195-spi",
+                                    "mediatek,mt6765-spi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11013000 0 0x1000>;
+                       interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI3>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi4: spi@11018000 {
+                       compatible = "mediatek,mt8195-spi",
+                                    "mediatek,mt6765-spi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11018000 0 0x1000>;
+                       interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI4>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spi5: spi@11019000 {
+                       compatible = "mediatek,mt8195-spi",
+                                    "mediatek,mt6765-spi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0 0x11019000 0 0x1000>;
+                       interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_UNIVPLL_D6_D2>,
+                                <&topckgen CLK_TOP_SPI>,
+                                <&infracfg_ao CLK_INFRA_AO_SPI5>;
+                       clock-names = "parent-clk", "sel-clk", "spi-clk";
+                       status = "disabled";
+               };
+
+               spis0: spi@1101d000 {
+                       compatible = "mediatek,mt8195-spi-slave";
+                       reg = <0 0x1101d000 0 0x1000>;
+                       interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_SPIS0>;
+                       clock-names = "spi";
+                       assigned-clocks = <&topckgen CLK_TOP_SPIS>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6>;
+                       status = "disabled";
+               };
+
+               spis1: spi@1101e000 {
+                       compatible = "mediatek,mt8195-spi-slave";
+                       reg = <0 0x1101e000 0 0x1000>;
+                       interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_SPIS1>;
+                       clock-names = "spi";
+                       assigned-clocks = <&topckgen CLK_TOP_SPIS>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D6>;
+                       status = "disabled";
+               };
+
+               xhci0: usb@11200000 {
+                       compatible = "mediatek,mt8195-xhci",
+                                    "mediatek,mtk-xhci";
+                       reg = <0 0x11200000 0 0x1000>,
+                             <0 0x11203e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port0 PHY_TYPE_USB2>,
+                              <&u3port0 PHY_TYPE_USB3>;
+                       assigned-clocks = <&topckgen CLK_TOP_USB_TOP>,
+                                         <&topckgen CLK_TOP_SSUSB_XHCI>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&infracfg_ao CLK_INFRA_AO_SSUSB>,
+                                <&topckgen CLK_TOP_SSUSB_REF>,
+                                <&apmixedsys CLK_APMIXED_USB1PLL>,
+                                <&infracfg_ao CLK_INFRA_AO_SSUSB_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck", "xhci_ck";
+                       status = "disabled";
+               };
+
+               mmc0: mmc@11230000 {
+                       compatible = "mediatek,mt8195-mmc",
+                                    "mediatek,mt8183-mmc";
+                       reg = <0 0x11230000 0 0x10000>,
+                             <0 0x11f50000 0 0x1000>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC50_0>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC0>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC0_SRC>;
+                       clock-names = "source", "hclk", "source_cg";
+                       status = "disabled";
+               };
+
+               mmc1: mmc@11240000 {
+                       compatible = "mediatek,mt8195-mmc",
+                                    "mediatek,mt8183-mmc";
+                       reg = <0 0x11240000 0 0x1000>,
+                             <0 0x11c70000 0 0x1000>;
+                       interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC30_1>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC1>,
+                                <&infracfg_ao CLK_INFRA_AO_MSDC1_SRC>;
+                       clock-names = "source", "hclk", "source_cg";
+                       assigned-clocks = <&topckgen CLK_TOP_MSDC30_1>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
+                       status = "disabled";
+               };
+
+               mmc2: mmc@11250000 {
+                       compatible = "mediatek,mt8195-mmc",
+                                    "mediatek,mt8183-mmc";
+                       reg = <0 0x11250000 0 0x1000>,
+                             <0 0x11e60000 0 0x1000>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_MSDC30_2>,
+                                <&infracfg_ao CLK_INFRA_AO_CG1_MSDC2>,
+                                <&infracfg_ao CLK_INFRA_AO_CG3_MSDC2>;
+                       clock-names = "source", "hclk", "source_cg";
+                       assigned-clocks = <&topckgen CLK_TOP_MSDC30_2>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>;
+                       status = "disabled";
+               };
+
+               xhci1: usb@11290000 {
+                       compatible = "mediatek,mt8195-xhci",
+                                    "mediatek,mtk-xhci";
+                       reg = <0 0x11290000 0 0x1000>,
+                             <0 0x11293e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 530 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port1 PHY_TYPE_USB2>;
+                       assigned-clocks = <&topckgen CLK_TOP_USB_TOP_1P>,
+                                         <&topckgen CLK_TOP_SSUSB_XHCI_1P>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_1P_BUS>,
+                                <&topckgen CLK_TOP_SSUSB_P1_REF>,
+                                <&apmixedsys CLK_APMIXED_USB1PLL>,
+                                <&pericfg_ao CLK_PERI_AO_SSUSB_1P_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "mcu_ck","xhci_ck";
+                       status = "disabled";
+               };
+
+               xhci2: usb@112a0000 {
+                       compatible = "mediatek,mt8195-xhci",
+                                    "mediatek,mtk-xhci";
+                       reg = <0 0x112a0000 0 0x1000>,
+                             <0 0x112a3e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 533 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port2 PHY_TYPE_USB2>;
+                       assigned-clocks = <&topckgen CLK_TOP_USB_TOP_2P>,
+                                         <&topckgen CLK_TOP_SSUSB_XHCI_2P>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_2P_BUS>,
+                                <&topckgen CLK_TOP_SSUSB_P2_REF>,
+                                <&pericfg_ao CLK_PERI_AO_SSUSB_2P_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "xhci_ck";
+                       status = "disabled";
+               };
+
+               xhci3: usb@112b0000 {
+                       compatible = "mediatek,mt8195-xhci",
+                                    "mediatek,mtk-xhci";
+                       reg = <0 0x112b0000 0 0x1000>,
+                             <0 0x112b3e00 0 0x0100>;
+                       reg-names = "mac", "ippc";
+                       interrupts = <GIC_SPI 536 IRQ_TYPE_LEVEL_HIGH 0>;
+                       phys = <&u2port3 PHY_TYPE_USB2>;
+                       assigned-clocks = <&topckgen CLK_TOP_USB_TOP_3P>,
+                                         <&topckgen CLK_TOP_SSUSB_XHCI_3P>;
+                       assigned-clock-parents = <&topckgen CLK_TOP_UNIVPLL_D5_D4>,
+                                                <&topckgen CLK_TOP_UNIVPLL_D5_D4>;
+                       clocks = <&pericfg_ao CLK_PERI_AO_SSUSB_3P_BUS>,
+                                <&topckgen CLK_TOP_SSUSB_P3_REF>,
+                                <&pericfg_ao CLK_PERI_AO_SSUSB_3P_XHCI>;
+                       clock-names = "sys_ck", "ref_ck", "xhci_ck";
+                       status = "disabled";
+               };
+
+               nor_flash: spi@1132c000 {
+                       compatible = "mediatek,mt8195-nor",
+                                    "mediatek,mt8173-nor";
+                       reg = <0 0x1132c000 0 0x1000>;
+                       interrupts = <GIC_SPI 825 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&topckgen CLK_TOP_SPINOR>,
+                                <&pericfg_ao CLK_PERI_AO_FLASHIF_FLASH>,
+                                <&pericfg_ao CLK_PERI_AO_FLASHIF_BUS>;
+                       clock-names = "spi", "sf", "axi";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               u3phy2: t-phy@11c40000 {
+                       compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x11c40000 0x700>;
+                       status = "disabled";
+
+                       u2port2: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_P2_REF>;
+                               clock-names = "ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
+               u3phy3: t-phy@11c50000 {
+                       compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x11c50000 0x700>;
+                       status = "disabled";
+
+                       u2port3: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_P3_REF>;
+                               clock-names = "ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
+               i2c5: i2c@11d00000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11d00000 0 0x1000>,
+                             <0 0x10220580 0 0x80>;
+                       interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C5>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c6: i2c@11d01000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11d01000 0 0x1000>,
+                             <0 0x10220600 0 0x80>;
+                       interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C6>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c7: i2c@11d02000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11d02000 0 0x1000>,
+                             <0 0x10220680 0 0x80>;
+                       interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_s CLK_IMP_IIC_WRAP_S_I2C7>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               imp_iic_wrap_s: clock-controller@11d03000 {
+                       compatible = "mediatek,mt8195-imp_iic_wrap_s";
+                       reg = <0 0x11d03000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               i2c0: i2c@11e00000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11e00000 0 0x1000>,
+                             <0 0x10220080 0 0x80>;
+                       interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C0>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+               };
+
+               i2c1: i2c@11e01000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11e01000 0 0x1000>,
+                             <0 0x10220200 0 0x80>;
+                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C1>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@11e02000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11e02000 0 0x1000>,
+                             <0 0x10220380 0 0x80>;
+                       interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C2>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@11e03000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11e03000 0 0x1000>,
+                             <0 0x10220480 0 0x80>;
+                       interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C3>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@11e04000 {
+                       compatible = "mediatek,mt8195-i2c",
+                                    "mediatek,mt8192-i2c";
+                       reg = <0 0x11e04000 0 0x1000>,
+                             <0 0x10220500 0 0x80>;
+                       interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clock-div = <1>;
+                       clocks = <&imp_iic_wrap_w CLK_IMP_IIC_WRAP_W_I2C4>,
+                                <&infracfg_ao CLK_INFRA_AO_APDMA_B>;
+                       clock-names = "main", "dma";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               imp_iic_wrap_w: clock-controller@11e05000 {
+                       compatible = "mediatek,mt8195-imp_iic_wrap_w";
+                       reg = <0 0x11e05000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               u3phy1: t-phy@11e30000 {
+                       compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x11e30000 0xe00>;
+                       status = "disabled";
+
+                       u2port1: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_P1_REF>,
+                                        <&clk26m>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+
+                       u3port1: usb-phy@700 {
+                               reg = <0x700 0x700>;
+                               clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M>,
+                                        <&topckgen CLK_TOP_SSUSB_PHY_P1_REF>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
+               u3phy0: t-phy@11e40000 {
+                       compatible = "mediatek,mt8195-tphy", "mediatek,generic-tphy-v3";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0 0x11e40000 0xe00>;
+                       status = "disabled";
+
+                       u2port0: usb-phy@0 {
+                               reg = <0x0 0x700>;
+                               clocks = <&topckgen CLK_TOP_SSUSB_PHY_REF>,
+                                        <&clk26m>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+
+                       u3port0: usb-phy@700 {
+                               reg = <0x700 0x700>;
+                               clocks = <&apmixedsys CLK_APMIXED_PLL_SSUSB26M>,
+                                        <&topckgen CLK_TOP_SSUSB_PHY_REF>;
+                               clock-names = "ref", "da_ref";
+                               #phy-cells = <1>;
+                       };
+               };
+
+               ufsphy: ufs-phy@11fa0000 {
+                       compatible = "mediatek,mt8195-ufsphy", "mediatek,mt8183-ufsphy";
+                       reg = <0 0x11fa0000 0 0xc000>;
+                       clocks = <&clk26m>, <&clk26m>;
+                       clock-names = "unipro", "mp";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               mfgcfg: clock-controller@13fbf000 {
+                       compatible = "mediatek,mt8195-mfgcfg";
+                       reg = <0 0x13fbf000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               wpesys: clock-controller@14e00000 {
+                       compatible = "mediatek,mt8195-wpesys";
+                       reg = <0 0x14e00000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               wpesys_vpp0: clock-controller@14e02000 {
+                       compatible = "mediatek,mt8195-wpesys_vpp0";
+                       reg = <0 0x14e02000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               wpesys_vpp1: clock-controller@14e03000 {
+                       compatible = "mediatek,mt8195-wpesys_vpp1";
+                       reg = <0 0x14e03000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys: clock-controller@15000000 {
+                       compatible = "mediatek,mt8195-imgsys";
+                       reg = <0 0x15000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys1_dip_top: clock-controller@15110000 {
+                       compatible = "mediatek,mt8195-imgsys1_dip_top";
+                       reg = <0 0x15110000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys1_dip_nr: clock-controller@15130000 {
+                       compatible = "mediatek,mt8195-imgsys1_dip_nr";
+                       reg = <0 0x15130000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               imgsys1_wpe: clock-controller@15220000 {
+                       compatible = "mediatek,mt8195-imgsys1_wpe";
+                       reg = <0 0x15220000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               ipesys: clock-controller@15330000 {
+                       compatible = "mediatek,mt8195-ipesys";
+                       reg = <0 0x15330000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys: clock-controller@16000000 {
+                       compatible = "mediatek,mt8195-camsys";
+                       reg = <0 0x16000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_rawa: clock-controller@1604f000 {
+                       compatible = "mediatek,mt8195-camsys_rawa";
+                       reg = <0 0x1604f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_yuva: clock-controller@1606f000 {
+                       compatible = "mediatek,mt8195-camsys_yuva";
+                       reg = <0 0x1606f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_rawb: clock-controller@1608f000 {
+                       compatible = "mediatek,mt8195-camsys_rawb";
+                       reg = <0 0x1608f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_yuvb: clock-controller@160af000 {
+                       compatible = "mediatek,mt8195-camsys_yuvb";
+                       reg = <0 0x160af000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               camsys_mraw: clock-controller@16140000 {
+                       compatible = "mediatek,mt8195-camsys_mraw";
+                       reg = <0 0x16140000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               ccusys: clock-controller@17200000 {
+                       compatible = "mediatek,mt8195-ccusys";
+                       reg = <0 0x17200000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vdecsys_soc: clock-controller@1800f000 {
+                       compatible = "mediatek,mt8195-vdecsys_soc";
+                       reg = <0 0x1800f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vdecsys: clock-controller@1802f000 {
+                       compatible = "mediatek,mt8195-vdecsys";
+                       reg = <0 0x1802f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vdecsys_core1: clock-controller@1803f000 {
+                       compatible = "mediatek,mt8195-vdecsys_core1";
+                       reg = <0 0x1803f000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               apusys_pll: clock-controller@190f3000 {
+                       compatible = "mediatek,mt8195-apusys_pll";
+                       reg = <0 0x190f3000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vencsys: clock-controller@1a000000 {
+                       compatible = "mediatek,mt8195-vencsys";
+                       reg = <0 0x1a000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+
+               vencsys_core1: clock-controller@1b000000 {
+                       compatible = "mediatek,mt8195-vencsys_core1";
+                       reg = <0 0x1b000000 0 0x1000>;
+                       #clock-cells = <1>;
+               };
+       };
+};
index fcddec1..7a717f9 100644 (file)
@@ -25,7 +25,6 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               input-name = "gpio-keys";
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_keys_default>;
 
index 03f107e..ce0747f 100644 (file)
@@ -19,7 +19,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <14>; /* CS14 */
-               spi-flash@6 {
+               flash@6 {
                        compatible = "spi-nand";
                        pinctrl-0 = <&cs14_pins>;
                        pinctrl-names = "default";
index 9baa085..dbf8c1d 100644 (file)
@@ -47,7 +47,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>;      /* CS0 */
-               spi-flash@9 {
+               flash@9 {
                        compatible = "jedec,spi-nor";
                        spi-max-frequency = <8000000>;
                        reg = <0x9>;    /* SPI */
@@ -59,7 +59,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <1>; /* CS1 */
-               spi-flash@9 {
+               flash@9 {
                        compatible = "spi-nand";
                        pinctrl-0 = <&cs1_pins>;
                        pinctrl-names = "default";
index 33faf1f..699256f 100644 (file)
 
 &spi0 {
        status = "okay";
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                spi-max-frequency = <8000000>;
                reg = <0>;
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>;      /* CS0 */
-               spi-flash@9 {
+               flash@9 {
                        compatible = "jedec,spi-nor";
                        spi-max-frequency = <8000000>;
                        reg = <0x9>;    /* SPI */
index ef96e6d..d10a917 100644 (file)
@@ -89,7 +89,7 @@
 
 &spi0 {
        status = "okay";
-       spi-flash@0 {
+       flash@0 {
                compatible = "jedec,spi-nor";
                spi-max-frequency = <8000000>;
                reg = <0>;
                #address-cells = <1>;
                #size-cells = <0>;
                reg = <0>; /* CS0 */
-               spi-flash@9 {
+               flash@9 {
                        compatible = "jedec,spi-nor";
                        spi-max-frequency = <8000000>;
                        reg = <0x9>; /* SPI */
index c4dee05..70737a0 100644 (file)
                                                remote-endpoint = <&mixer_out5_ep>;
                                        };
                                };
+
+                               xbar_asrc_in1_port: port@63 {
+                                       reg = <0x63>;
+
+                                       xbar_asrc_in1_ep: endpoint {
+                                               remote-endpoint = <&asrc_in1_ep>;
+                                       };
+                               };
+
+                               port@64 {
+                                       reg = <0x64>;
+
+                                       xbar_asrc_out1_ep: endpoint {
+                                               remote-endpoint = <&asrc_out1_ep>;
+                                       };
+                               };
+
+                               xbar_asrc_in2_port: port@65 {
+                                       reg = <0x65>;
+
+                                       xbar_asrc_in2_ep: endpoint {
+                                               remote-endpoint = <&asrc_in2_ep>;
+                                       };
+                               };
+
+                               port@66 {
+                                       reg = <0x66>;
+
+                                       xbar_asrc_out2_ep: endpoint {
+                                               remote-endpoint = <&asrc_out2_ep>;
+                                       };
+                               };
+
+                               xbar_asrc_in3_port: port@67 {
+                                       reg = <0x67>;
+
+                                       xbar_asrc_in3_ep: endpoint {
+                                               remote-endpoint = <&asrc_in3_ep>;
+                                       };
+                               };
+
+                               port@68 {
+                                       reg = <0x68>;
+
+                                       xbar_asrc_out3_ep: endpoint {
+                                               remote-endpoint = <&asrc_out3_ep>;
+                                       };
+                               };
+
+                               xbar_asrc_in4_port: port@69 {
+                                       reg = <0x69>;
+
+                                       xbar_asrc_in4_ep: endpoint {
+                                               remote-endpoint = <&asrc_in4_ep>;
+                                       };
+                               };
+
+                               port@6a {
+                                       reg = <0x6a>;
+
+                                       xbar_asrc_out4_ep: endpoint {
+                                               remote-endpoint = <&asrc_out4_ep>;
+                                       };
+                               };
+
+                               xbar_asrc_in5_port: port@6b {
+                                       reg = <0x6b>;
+
+                                       xbar_asrc_in5_ep: endpoint {
+                                               remote-endpoint = <&asrc_in5_ep>;
+                                       };
+                               };
+
+                               port@6c {
+                                       reg = <0x6c>;
+
+                                       xbar_asrc_out5_ep: endpoint {
+                                               remote-endpoint = <&asrc_out5_ep>;
+                                       };
+                               };
+
+                               xbar_asrc_in6_port: port@6d {
+                                       reg = <0x6d>;
+
+                                       xbar_asrc_in6_ep: endpoint {
+                                               remote-endpoint = <&asrc_in6_ep>;
+                                       };
+                               };
+
+                               port@6e {
+                                       reg = <0x6e>;
+
+                                       xbar_asrc_out6_ep: endpoint {
+                                               remote-endpoint = <&asrc_out6_ep>;
+                                       };
+                               };
+
+                               xbar_asrc_in7_port: port@6f {
+                                       reg = <0x6f>;
+
+                                       xbar_asrc_in7_ep: endpoint {
+                                               remote-endpoint = <&asrc_in7_ep>;
+                                       };
+                               };
                        };
 
                        admaif@290f000 {
                                        };
                                };
                        };
+
+                       asrc@2910000 {
+                               status = "okay";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0x0>;
+
+                                               asrc_in1_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in1_ep>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <0x1>;
+
+                                               asrc_in2_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in2_ep>;
+                                               };
+                                       };
+
+                                       port@2 {
+                                               reg = <0x2>;
+
+                                               asrc_in3_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in3_ep>;
+                                               };
+                                       };
+
+                                       port@3 {
+                                               reg = <0x3>;
+
+                                               asrc_in4_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in4_ep>;
+                                               };
+                                       };
+
+                                       port@4 {
+                                               reg = <0x4>;
+
+                                               asrc_in5_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in5_ep>;
+                                               };
+                                       };
+
+                                       port@5 {
+                                               reg = <0x5>;
+
+                                               asrc_in6_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in6_ep>;
+                                               };
+                                       };
+
+                                       port@6 {
+                                               reg = <0x6>;
+
+                                               asrc_in7_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_in7_ep>;
+                                               };
+                                       };
+
+                                       asrc_out1_port: port@7 {
+                                               reg = <0x7>;
+
+                                               asrc_out1_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_out1_ep>;
+                                               };
+                                       };
+
+                                       asrc_out2_port: port@8 {
+                                               reg = <0x8>;
+
+                                               asrc_out2_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_out2_ep>;
+                                               };
+                                       };
+
+                                       asrc_out3_port: port@9 {
+                                               reg = <0x9>;
+
+                                               asrc_out3_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_out3_ep>;
+                                               };
+                                       };
+
+                                       asrc_out4_port: port@a {
+                                               reg = <0xa>;
+
+                                               asrc_out4_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_out4_ep>;
+                                               };
+                                       };
+
+                                       asrc_out5_port: port@b {
+                                               reg = <0xb>;
+
+                                               asrc_out5_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_out5_ep>;
+                                               };
+                                       };
+
+                                       asrc_out6_port: port@c {
+                                               reg = <0xc>;
+
+                                               asrc_out6_ep: endpoint {
+                                                       remote-endpoint = <&xbar_asrc_out6_ep>;
+                                               };
+                                       };
+                               };
+                       };
                };
        };
 
                       <&xbar_mixer_in5_port>, <&xbar_mixer_in6_port>,
                       <&xbar_mixer_in7_port>, <&xbar_mixer_in8_port>,
                       <&xbar_mixer_in9_port>, <&xbar_mixer_in10_port>,
+                      <&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
+                      <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
+                      <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
+                      <&xbar_asrc_in7_port>,
                       /* HW accelerators */
                       <&sfc1_out_port>, <&sfc2_out_port>,
                       <&sfc3_out_port>, <&sfc4_out_port>,
                       <&mixer_out1_port>, <&mixer_out2_port>,
                       <&mixer_out3_port>, <&mixer_out4_port>,
                       <&mixer_out5_port>,
+                      <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
+                      <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
                       /* I/O */
                       <&i2s1_port>, <&i2s2_port>, <&i2s3_port>, <&i2s4_port>,
                       <&i2s5_port>, <&i2s6_port>, <&dmic1_port>, <&dmic2_port>,
index 4631504..7e9aad9 100644 (file)
                status = "okay";
        };
 
-       fan: fan {
+       fan: pwm-fan {
                compatible = "pwm-fan";
                pwms = <&pwm4 0 45334>;
 
index e9b40f5..0e9afc3 100644 (file)
                                sound-name-prefix = "MIXER1";
                                status = "disabled";
                        };
+
+                       tegra_asrc: asrc@2910000 {
+                               compatible = "nvidia,tegra186-asrc";
+                               reg = <0x2910000 0x2000>;
+                               sound-name-prefix = "ASRC1";
+                               status = "disabled";
+                       };
                };
        };
 
        mc: memory-controller@2c00000 {
                compatible = "nvidia,tegra186-mc";
-               reg = <0x0 0x02c00000 0x0 0xb0000>;
+               reg = <0x0 0x02c00000 0x0 0x10000>,    /* MC-SID */
+                     <0x0 0x02c10000 0x0 0x10000>,    /* Broadcast channel */
+                     <0x0 0x02c20000 0x0 0x10000>,    /* MC0 */
+                     <0x0 0x02c30000 0x0 0x10000>,    /* MC1 */
+                     <0x0 0x02c40000 0x0 0x10000>,    /* MC2 */
+                     <0x0 0x02c50000 0x0 0x10000>;    /* MC3 */
+               reg-names = "sid", "broadcast", "ch0", "ch1", "ch2", "ch3";
                interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
                status = "disabled";
 
index 2478ece..bce518a 100644 (file)
                                                        remote-endpoint = <&mixer_out5_ep>;
                                                };
                                        };
+
+                                       xbar_asrc_in1_port: port@63 {
+                                               reg = <0x63>;
+
+                                               xbar_asrc_in1_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in1_ep>;
+                                               };
+                                       };
+
+                                       port@64 {
+                                               reg = <0x64>;
+
+                                               xbar_asrc_out1_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out1_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in2_port: port@65 {
+                                               reg = <0x65>;
+
+                                               xbar_asrc_in2_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in2_ep>;
+                                               };
+                                       };
+
+                                       port@66 {
+                                               reg = <0x66>;
+
+                                               xbar_asrc_out2_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out2_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in3_port: port@67 {
+                                               reg = <0x67>;
+
+                                               xbar_asrc_in3_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in3_ep>;
+                                               };
+                                       };
+
+                                       port@68 {
+                                               reg = <0x68>;
+
+                                               xbar_asrc_out3_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out3_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in4_port: port@69 {
+                                               reg = <0x69>;
+
+                                               xbar_asrc_in4_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in4_ep>;
+                                               };
+                                       };
+
+                                       port@6a {
+                                               reg = <0x6a>;
+
+                                               xbar_asrc_out4_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out4_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in5_port: port@6b {
+                                               reg = <0x6b>;
+
+                                               xbar_asrc_in5_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in5_ep>;
+                                               };
+                                       };
+
+                                       port@6c {
+                                               reg = <0x6c>;
+
+                                               xbar_asrc_out5_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out5_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in6_port: port@6d {
+                                               reg = <0x6d>;
+
+                                               xbar_asrc_in6_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in6_ep>;
+                                               };
+                                       };
+
+                                       port@6e {
+                                               reg = <0x6e>;
+
+                                               xbar_asrc_out6_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out6_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in7_port: port@6f {
+                                               reg = <0x6f>;
+
+                                               xbar_asrc_in7_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in7_ep>;
+                                               };
+                                       };
                                };
 
                                admaif@290f000 {
                                                };
                                        };
                                };
+
+                               asrc@2910000 {
+                                       status = "okay";
+
+                                       ports {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               port@0 {
+                                                       reg = <0x0>;
+
+                                                       asrc_in1_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in1_ep>;
+                                                       };
+                                               };
+
+                                               port@1 {
+                                                       reg = <0x1>;
+
+                                                       asrc_in2_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in2_ep>;
+                                                       };
+                                               };
+
+                                               port@2 {
+                                                       reg = <0x2>;
+
+                                                       asrc_in3_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in3_ep>;
+                                                       };
+                                               };
+
+                                               port@3 {
+                                                       reg = <0x3>;
+
+                                                       asrc_in4_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in4_ep>;
+                                                       };
+                                               };
+
+                                               port@4 {
+                                                       reg = <0x4>;
+
+                                                       asrc_in5_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in5_ep>;
+                                                       };
+                                               };
+
+                                               port@5 {
+                                                       reg = <0x5>;
+
+                                                       asrc_in6_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in6_ep>;
+                                                       };
+                                               };
+
+                                               port@6 {
+                                                       reg = <0x6>;
+
+                                                       asrc_in7_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in7_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out1_port: port@7 {
+                                                       reg = <0x7>;
+
+                                                       asrc_out1_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out1_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out2_port: port@8 {
+                                                       reg = <0x8>;
+
+                                                       asrc_out2_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out2_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out3_port: port@9 {
+                                                       reg = <0x9>;
+
+                                                       asrc_out3_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out3_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out4_port: port@a {
+                                                       reg = <0xa>;
+
+                                                       asrc_out4_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out4_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out5_port: port@b {
+                                                       reg = <0xb>;
+
+                                                       asrc_out5_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out5_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out6_port: port@c {
+                                                       reg = <0xc>;
+
+                                                       asrc_out6_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out6_ep>;
+                                                       };
+                                               };
+                                       };
+                               };
                        };
                };
 
                            "p2u-5", "p2u-6", "p2u-7";
        };
 
-       fan: fan {
+       fan: pwm-fan {
                compatible = "pwm-fan";
                pwms = <&pwm4 0 45334>;
 
                       <&xbar_mixer_in5_port>, <&xbar_mixer_in6_port>,
                       <&xbar_mixer_in7_port>, <&xbar_mixer_in8_port>,
                       <&xbar_mixer_in9_port>, <&xbar_mixer_in10_port>,
+                      <&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
+                      <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
+                      <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
+                      <&xbar_asrc_in7_port>,
                       /* HW accelerators */
                       <&sfc1_out_port>, <&sfc2_out_port>,
                       <&sfc3_out_port>, <&sfc4_out_port>,
                       <&adx4_out3_port>, <&adx4_out4_port>,
                       <&mixer_out1_port>, <&mixer_out2_port>, <&mixer_out3_port>,
                       <&mixer_out4_port>, <&mixer_out5_port>,
+                      <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
+                      <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
                       /* BE I/O Ports */
                       <&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
                       <&dmic3_port>;
index 32ce790..7acc32d 100644 (file)
                                                        remote-endpoint = <&mixer_out5_ep>;
                                                };
                                        };
+
+                                       xbar_asrc_in1_port: port@63 {
+                                               reg = <0x63>;
+
+                                               xbar_asrc_in1_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in1_ep>;
+                                               };
+                                       };
+
+                                       port@64 {
+                                               reg = <0x64>;
+
+                                               xbar_asrc_out1_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out1_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in2_port: port@65 {
+                                               reg = <0x65>;
+
+                                               xbar_asrc_in2_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in2_ep>;
+                                               };
+                                       };
+
+                                       port@66 {
+                                               reg = <0x66>;
+
+                                               xbar_asrc_out2_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out2_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in3_port: port@67 {
+                                               reg = <0x67>;
+
+                                               xbar_asrc_in3_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in3_ep>;
+                                               };
+                                       };
+
+                                       port@68 {
+                                               reg = <0x68>;
+
+                                               xbar_asrc_out3_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out3_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in4_port: port@69 {
+                                               reg = <0x69>;
+
+                                               xbar_asrc_in4_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in4_ep>;
+                                               };
+                                       };
+
+                                       port@6a {
+                                               reg = <0x6a>;
+
+                                               xbar_asrc_out4_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out4_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in5_port: port@6b {
+                                               reg = <0x6b>;
+
+                                               xbar_asrc_in5_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in5_ep>;
+                                               };
+                                       };
+
+                                       port@6c {
+                                               reg = <0x6c>;
+
+                                               xbar_asrc_out5_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out5_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in6_port: port@6d {
+                                               reg = <0x6d>;
+
+                                               xbar_asrc_in6_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in6_ep>;
+                                               };
+                                       };
+
+                                       port@6e {
+                                               reg = <0x6e>;
+
+                                               xbar_asrc_out6_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out6_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in7_port: port@6f {
+                                               reg = <0x6f>;
+
+                                               xbar_asrc_in7_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in7_ep>;
+                                               };
+                                       };
                                };
 
                                admaif@290f000 {
                                                };
                                        };
                                };
+
+                               asrc@2910000 {
+                                       status = "okay";
+
+                                       ports {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               port@0 {
+                                                       reg = <0x0>;
+
+                                                       asrc_in1_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in1_ep>;
+                                                       };
+                                               };
+
+                                               port@1 {
+                                                       reg = <0x1>;
+
+                                                       asrc_in2_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in2_ep>;
+                                                       };
+                                               };
+
+                                               port@2 {
+                                                       reg = <0x2>;
+
+                                                       asrc_in3_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in3_ep>;
+                                                       };
+                                               };
+
+                                               port@3 {
+                                                       reg = <0x3>;
+
+                                                       asrc_in4_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in4_ep>;
+                                                       };
+                                               };
+
+                                               port@4 {
+                                                       reg = <0x4>;
+
+                                                       asrc_in5_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in5_ep>;
+                                                       };
+                                               };
+
+                                               port@5 {
+                                                       reg = <0x5>;
+
+                                                       asrc_in6_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in6_ep>;
+                                                       };
+                                               };
+
+                                               port@6 {
+                                                       reg = <0x6>;
+
+                                                       asrc_in7_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in7_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out1_port: port@7 {
+                                                       reg = <0x7>;
+
+                                                       asrc_out1_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out1_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out2_port: port@8 {
+                                                       reg = <0x8>;
+
+                                                       asrc_out2_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out2_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out3_port: port@9 {
+                                                       reg = <0x9>;
+
+                                                       asrc_out3_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out3_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out4_port: port@a {
+                                                       reg = <0xa>;
+
+                                                       asrc_out4_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out4_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out5_port: port@b {
+                                                       reg = <0xb>;
+
+                                                       asrc_out5_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out5_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out6_port: port@c {
+                                                       reg = <0xc>;
+
+                                                       asrc_out6_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out6_ep>;
+                                                       };
+                                               };
+                                       };
+                               };
                        };
                };
 
                            "p2u-5", "p2u-6", "p2u-7";
        };
 
-       fan: fan {
+       fan: pwm-fan {
                compatible = "pwm-fan";
                pwms = <&pwm6 0 45334>;
 
                       <&xbar_mixer_in5_port>, <&xbar_mixer_in6_port>,
                       <&xbar_mixer_in7_port>, <&xbar_mixer_in8_port>,
                       <&xbar_mixer_in9_port>, <&xbar_mixer_in10_port>,
+                      <&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
+                      <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
+                      <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
+                      <&xbar_asrc_in7_port>,
                       /* HW accelerators */
                       <&sfc1_out_port>, <&sfc2_out_port>,
                       <&sfc3_out_port>, <&sfc4_out_port>,
                       <&mixer_out1_port>, <&mixer_out2_port>,
                       <&mixer_out3_port>, <&mixer_out4_port>,
                       <&mixer_out5_port>,
+                      <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
+                      <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
                       /* BE I/O Ports */
                       <&i2s3_port>, <&i2s5_port>,
                       <&dmic1_port>, <&dmic2_port>, <&dmic4_port>,
index 751ebe5..d1f8248 100644 (file)
                                        sound-name-prefix = "MIXER1";
                                        status = "disabled";
                                };
+
+                               tegra_asrc: asrc@2910000 {
+                                       compatible = "nvidia,tegra194-asrc",
+                                                    "nvidia,tegra186-asrc";
+                                       reg = <0x2910000 0x2000>;
+                                       sound-name-prefix = "ASRC1";
+                                       status = "disabled";
+                               };
                        };
                };
 
 
                mc: memory-controller@2c00000 {
                        compatible = "nvidia,tegra194-mc";
-                       reg = <0x02c00000 0x100000>,
-                             <0x02b80000 0x040000>,
-                             <0x01700000 0x100000>;
+                       reg = <0x02c00000 0x10000>,   /* MC-SID */
+                             <0x02c10000 0x10000>,   /* MC Broadcast*/
+                             <0x02c20000 0x10000>,   /* MC0 */
+                             <0x02c30000 0x10000>,   /* MC1 */
+                             <0x02c40000 0x10000>,   /* MC2 */
+                             <0x02c50000 0x10000>,   /* MC3 */
+                             <0x02b80000 0x10000>,   /* MC4 */
+                             <0x02b90000 0x10000>,   /* MC5 */
+                             <0x02ba0000 0x10000>,   /* MC6 */
+                             <0x02bb0000 0x10000>,   /* MC7 */
+                             <0x01700000 0x10000>,   /* MC8 */
+                             <0x01710000 0x10000>,   /* MC9 */
+                             <0x01720000 0x10000>,   /* MC10 */
+                             <0x01730000 0x10000>,   /* MC11 */
+                             <0x01740000 0x10000>,   /* MC12 */
+                             <0x01750000 0x10000>,   /* MC13 */
+                             <0x01760000 0x10000>,   /* MC14 */
+                             <0x01770000 0x10000>;   /* MC15 */
+                       reg-names = "sid", "broadcast", "ch0", "ch1", "ch2", "ch3",
+                                   "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10",
+                                   "ch11", "ch12", "ch13", "ch14", "ch15";
                        interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
                        #interconnect-cells = <1>;
                        status = "disabled";
                        clocks = <&bpmp TEGRA194_CLK_SDMMC1>,
                                 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
                        clock-names = "sdhci", "tmclk";
+                       assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC1>,
+                                         <&bpmp TEGRA194_CLK_PLLC4_MUXED>;
+                       assigned-clock-parents =
+                                         <&bpmp TEGRA194_CLK_PLLC4_MUXED>,
+                                         <&bpmp TEGRA194_CLK_PLLC4_VCO_DIV2>;
                        resets = <&bpmp TEGRA194_RESET_SDMMC1>;
                        reset-names = "sdhci";
                        interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCRA &emc>,
                        clocks = <&bpmp TEGRA194_CLK_SDMMC3>,
                                 <&bpmp TEGRA194_CLK_SDMMC_LEGACY_TM>;
                        clock-names = "sdhci", "tmclk";
+                       assigned-clocks = <&bpmp TEGRA194_CLK_SDMMC3>,
+                                         <&bpmp TEGRA194_CLK_PLLC4_MUXED>;
+                       assigned-clock-parents =
+                                         <&bpmp TEGRA194_CLK_PLLC4_MUXED>,
+                                         <&bpmp TEGRA194_CLK_PLLC4_VCO_DIV2>;
                        resets = <&bpmp TEGRA194_RESET_SDMMC3>;
                        reset-names = "sdhci";
                        interconnects = <&mc TEGRA194_MEMORY_CLIENT_SDMMCR &emc>,
index 72c2dc3..746bd52 100644 (file)
                };
        };
 
-       fan: fan {
+       fan: pwm-fan {
                compatible = "pwm-fan";
                pwms = <&pwm 3 45334>;
 
index 218a2b3..4f0e51f 100644 (file)
                         <&tegra_car TEGRA210_CLK_DFLL_REF>,
                         <&tegra_car TEGRA210_CLK_I2C5>;
                clock-names = "soc", "ref", "i2c";
-               resets = <&tegra_car TEGRA210_RST_DFLL_DVCO>;
-               reset-names = "dvco";
+               resets = <&tegra_car TEGRA210_RST_DFLL_DVCO>,
+                        <&tegra_car 155>;
+               reset-names = "dvco", "dfll";
                #clock-cells = <0>;
                clock-output-names = "dfllCPU_out";
                status = "disabled";
index d95a542..798de92 100644 (file)
@@ -7,6 +7,18 @@
        compatible = "nvidia,p3701-0000", "nvidia,tegra234";
 
        bus@0 {
+               spi@3270000 {
+                       status = "okay";
+
+                       flash@0 {
+                               compatible = "jedec,spi-nor";
+                               reg = <0>;
+                               spi-max-frequency = <102000000>;
+                               spi-tx-bus-width = <4>;
+                               spi-rx-bus-width = <4>;
+                       };
+               };
+
                mmc@3460000 {
                        status = "okay";
                        bus-width = <8>;
index 34d6a01..eaf1994 100644 (file)
                                                        remote-endpoint = <&mix_out5>;
                                                };
                                        };
+
+                                       xbar_asrc_in1_port: port@63 {
+                                               reg = <0x63>;
+
+                                               xbar_asrc_in1_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in1_ep>;
+                                               };
+                                       };
+
+                                       port@64 {
+                                               reg = <0x64>;
+
+                                               xbar_asrc_out1_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out1_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in2_port: port@65 {
+                                               reg = <0x65>;
+
+                                               xbar_asrc_in2_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in2_ep>;
+                                               };
+                                       };
+
+                                       port@66 {
+                                               reg = <0x66>;
+
+                                               xbar_asrc_out2_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out2_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in3_port: port@67 {
+                                               reg = <0x67>;
+
+                                               xbar_asrc_in3_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in3_ep>;
+                                               };
+                                       };
+
+                                       port@68 {
+                                               reg = <0x68>;
+
+                                               xbar_asrc_out3_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out3_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in4_port: port@69 {
+                                               reg = <0x69>;
+
+                                               xbar_asrc_in4_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in4_ep>;
+                                               };
+                                       };
+
+                                       port@6a {
+                                               reg = <0x6a>;
+
+                                               xbar_asrc_out4_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out4_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in5_port: port@6b {
+                                               reg = <0x6b>;
+
+                                               xbar_asrc_in5_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in5_ep>;
+                                               };
+                                       };
+
+                                       port@6c {
+                                               reg = <0x6c>;
+
+                                               xbar_asrc_out5_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out5_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in6_port: port@6d {
+                                               reg = <0x6d>;
+
+                                               xbar_asrc_in6_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in6_ep>;
+                                               };
+                                       };
+
+                                       port@6e {
+                                               reg = <0x6e>;
+
+                                               xbar_asrc_out6_ep: endpoint {
+                                                       remote-endpoint = <&asrc_out6_ep>;
+                                               };
+                                       };
+
+                                       xbar_asrc_in7_port: port@6f {
+                                               reg = <0x6f>;
+
+                                               xbar_asrc_in7_ep: endpoint {
+                                                       remote-endpoint = <&asrc_in7_ep>;
+                                               };
+                                       };
                                };
 
                                i2s@2901000 {
                                                };
                                        };
                                };
+
+                               asrc@2910000 {
+                                       status = "okay";
+
+                                       ports {
+                                               #address-cells = <1>;
+                                               #size-cells = <0>;
+
+                                               port@0 {
+                                                       reg = <0x0>;
+
+                                                       asrc_in1_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in1_ep>;
+                                                       };
+                                               };
+
+                                               port@1 {
+                                                       reg = <0x1>;
+
+                                                       asrc_in2_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in2_ep>;
+                                                       };
+                                               };
+
+                                               port@2 {
+                                                       reg = <0x2>;
+
+                                                       asrc_in3_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in3_ep>;
+                                                       };
+                                               };
+
+                                               port@3 {
+                                                       reg = <0x3>;
+
+                                                       asrc_in4_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in4_ep>;
+                                                       };
+                                               };
+
+                                               port@4 {
+                                                       reg = <0x4>;
+
+                                                       asrc_in5_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in5_ep>;
+                                                       };
+                                               };
+
+                                               port@5 {
+                                                       reg = <0x5>;
+
+                                                       asrc_in6_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in6_ep>;
+                                                       };
+                                               };
+
+                                               port@6 {
+                                                       reg = <0x6>;
+
+                                                       asrc_in7_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_in7_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out1_port: port@7 {
+                                                       reg = <0x7>;
+
+                                                       asrc_out1_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out1_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out2_port: port@8 {
+                                                       reg = <0x8>;
+
+                                                       asrc_out2_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out2_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out3_port: port@9 {
+                                                       reg = <0x9>;
+
+                                                       asrc_out3_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out3_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out4_port: port@a {
+                                                       reg = <0xa>;
+
+                                                       asrc_out4_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out4_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out5_port: port@b {
+                                                       reg = <0xb>;
+
+                                                       asrc_out5_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out5_ep>;
+                                                       };
+                                               };
+
+                                               asrc_out6_port: port@c {
+                                                       reg = <0xc>;
+
+                                                       asrc_out6_ep: endpoint {
+                                                               remote-endpoint = <&xbar_asrc_out6_ep>;
+                                                       };
+                                               };
+                                       };
+                               };
                        };
 
                        dma-controller@2930000 {
                       <&xbar_mix_in5_port>, <&xbar_mix_in6_port>,
                       <&xbar_mix_in7_port>, <&xbar_mix_in8_port>,
                       <&xbar_mix_in9_port>, <&xbar_mix_in10_port>,
+                      <&xbar_asrc_in1_port>, <&xbar_asrc_in2_port>,
+                      <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
+                      <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
+                      <&xbar_asrc_in7_port>,
                       /* HW accelerators */
                       <&sfc1_out_port>, <&sfc2_out_port>,
                       <&sfc3_out_port>, <&sfc4_out_port>,
                       <&adx4_out3_port>, <&adx4_out4_port>,
                       <&mix_out1_port>, <&mix_out2_port>, <&mix_out3_port>,
                       <&mix_out4_port>, <&mix_out5_port>,
+                      <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
+                      <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
                       /* BE I/O Ports */
                       <&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
                       <&dmic3_port>;
index aaace60..cb3af53 100644 (file)
                                        iommus = <&smmu_niso0 TEGRA234_SID_APE>;
                                        status = "disabled";
                                };
+
+                               tegra_asrc: asrc@2910000 {
+                                       compatible = "nvidia,tegra234-asrc",
+                                                    "nvidia,tegra186-asrc";
+                                       reg = <0x2910000 0x2000>;
+                                       sound-name-prefix = "ASRC1";
+                                       status = "disabled";
+                               };
                        };
 
                        adma: dma-controller@2930000 {
 
                mc: memory-controller@2c00000 {
                        compatible = "nvidia,tegra234-mc";
-                       reg = <0x02c00000 0x100000>,
-                             <0x02b80000 0x040000>,
-                             <0x01700000 0x100000>;
+                       reg = <0x02c00000 0x10000>,   /* MC-SID */
+                             <0x02c10000 0x10000>,   /* MC Broadcast*/
+                             <0x02c20000 0x10000>,   /* MC0 */
+                             <0x02c30000 0x10000>,   /* MC1 */
+                             <0x02c40000 0x10000>,   /* MC2 */
+                             <0x02c50000 0x10000>,   /* MC3 */
+                             <0x02b80000 0x10000>,   /* MC4 */
+                             <0x02b90000 0x10000>,   /* MC5 */
+                             <0x02ba0000 0x10000>,   /* MC6 */
+                             <0x02bb0000 0x10000>,   /* MC7 */
+                             <0x01700000 0x10000>,   /* MC8 */
+                             <0x01710000 0x10000>,   /* MC9 */
+                             <0x01720000 0x10000>,   /* MC10 */
+                             <0x01730000 0x10000>,   /* MC11 */
+                             <0x01740000 0x10000>,   /* MC12 */
+                             <0x01750000 0x10000>,   /* MC13 */
+                             <0x01760000 0x10000>,   /* MC14 */
+                             <0x01770000 0x10000>;   /* MC15 */
+                       reg-names = "sid", "broadcast", "ch0", "ch1", "ch2", "ch3",
+                                   "ch4", "ch5", "ch6", "ch7", "ch8", "ch9", "ch10",
+                                   "ch11", "ch12", "ch13", "ch14", "ch15";
                        interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
                        #interconnect-cells = <1>;
                        status = "okay";
                        reset-names = "i2c";
                };
 
+               spi@3270000 {
+                       compatible = "nvidia,tegra234-qspi";
+                       reg = <0x3270000 0x1000>;
+                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&bpmp TEGRA234_CLK_QSPI0_2X_PM>,
+                                <&bpmp TEGRA234_CLK_QSPI0_PM>;
+                       clock-names = "qspi", "qspi_out";
+                       resets = <&bpmp TEGRA234_RESET_QSPI0>;
+                       reset-names = "qspi";
+                       status = "disabled";
+               };
+
                pwm1: pwm@3280000 {
                        compatible = "nvidia,tegra194-pwm",
                                     "nvidia,tegra186-pwm";
                        #pwm-cells = <2>;
                };
 
+               spi@3300000 {
+                       compatible = "nvidia,tegra234-qspi";
+                       reg = <0x3300000 0x1000>;
+                       interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&bpmp TEGRA234_CLK_QSPI1_2X_PM>,
+                                <&bpmp TEGRA234_CLK_QSPI1_PM>;
+                       clock-names = "qspi", "qspi_out";
+                       resets = <&bpmp TEGRA234_RESET_QSPI1>;
+                       reset-names = "qspi";
+                       status = "disabled";
+               };
+
                mmc@3460000 {
                        compatible = "nvidia,tegra234-sdhci", "nvidia,tegra186-sdhci";
                        reg = <0x03460000 0x20000>;
                };
        };
 
+       ccplex@e000000 {
+               compatible = "nvidia,tegra234-ccplex-cluster";
+               reg = <0x0 0x0e000000 0x0 0x5ffff>;
+               nvidia,bpmp = <&bpmp>;
+               status = "okay";
+       };
+
        sram@40000000 {
                compatible = "nvidia,tegra234-sysram", "mmio-sram";
                reg = <0x0 0x40000000 0x0 0x80000>;
index f9e6343..2f8aec2 100644 (file)
@@ -83,11 +83,12 @@ dtb-$(CONFIG_ARCH_QCOM)     += sc7180-trogdor-pompom-r3.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-pompom-r3-lte.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-r1.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7180-trogdor-r1-lte.dtb
-dtb-$(CONFIG_ARCH_QCOM)        += sc7280-herobrine-herobrine-r0.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7280-herobrine-crd.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-herobrine-herobrine-r1.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7280-herobrine-villager-r0.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-idp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sc7280-idp2.dtb
-dtb-$(CONFIG_ARCH_QCOM)        += sc7280-crd.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sc7280-crd-r3.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm630-sony-xperia-ganges-kirin.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm630-sony-xperia-nile-discovery.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sdm630-sony-xperia-nile-pioneer.dtb
index f623db8..56e54ce 100644 (file)
        vdd-gfx-supply = <&vdd_gfx>;
 };
 
+&mss_pil {
+       status = "okay";
+       pll-supply = <&vreg_l12a_1p8>;
+       firmware-name = "qcom/apq8096/mba.mbn", "qcom/apq8096/modem.mbn";
+};
+
 &pm8994_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
index 5aec183..821cb7c 100644 (file)
@@ -39,7 +39,7 @@
        cs-select = <0>;
        status = "okay";
 
-       m25p80@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                reg = <0>;
index aac5657..a4d363c 100644 (file)
                        #size-cells = <0>;
                        reg = <0x0 0x078b6000 0x0 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                               <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency  = <400000>;
-                       dmas = <&blsp_dma 15>, <&blsp_dma 14>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        #size-cells = <0>;
                        reg = <0x0 0x078b7000 0x0 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                               <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency  = <400000>;
-                       dmas = <&blsp_dma 17>, <&blsp_dma 16>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 16>, <&blsp_dma 17>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        };
                };
 
+               mdio: mdio@90000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio";
+                       reg = <0x0 0x90000 0x0 0x64>;
+                       clocks = <&gcc GCC_MDIO_AHB_CLK>;
+                       clock-names = "gcc_mdio_ahb_clk";
+                       status = "disabled";
+               };
+
                qusb_phy_1: qusb@59000 {
                        compatible = "qcom,ipq6018-qusb2-phy";
                        reg = <0x0 0x059000 0x0 0x180>;
                        reg = <0x0 0x78000 0x0 0x1C4>;
                        #address-cells = <2>;
                        #size-cells = <2>;
-                       #clock-cells = <1>;
                        ranges;
 
                        clocks = <&gcc GCC_USB0_AUX_CLK>,
                        reset-names = "phy","common";
                        status = "disabled";
 
-                       usb0_ssphy: lane@78200 {
+                       usb0_ssphy: phy@78200 {
                                reg = <0x0 0x00078200 0x0 0x130>, /* Tx */
                                      <0x0 0x00078400 0x0 0x200>, /* Rx */
                                      <0x0 0x00078800 0x0 0x1F8>, /* PCS */
                                      <0x0 0x00078600 0x0 0x044>; /* PCS misc */
                                #phy-cells = <0>;
+                               #clock-cells = <1>;
                                clocks = <&gcc GCC_USB0_PIPE_CLK>;
                                clock-names = "pipe0";
                                clock-output-names = "gcc_usb0_pipe_clk_src";
index b5e1eaa..de20cb9 100644 (file)
@@ -35,7 +35,7 @@
 &blsp1_spi1 {
        status = "okay";
 
-       m25p80@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index 07e6708..ce86d9b 100644 (file)
@@ -29,7 +29,7 @@
 &blsp1_spi1 {
        status = "ok";
 
-       m25p80@0 {
+       flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "jedec,spi-nor";
index d80b1ce..943243d 100644 (file)
@@ -13,7 +13,7 @@
        clocks {
                sleep_clk: sleep_clk {
                        compatible = "fixed-clock";
-                       clock-frequency = <32000>;
+                       clock-frequency = <32768>;
                        #clock-cells = <0>;
                };
 
                        #size-cells = <0>;
                        reg = <0x078b6000 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                               <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
-                       dmas = <&blsp_dma 15>, <&blsp_dma 14>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
                        pinctrl-0 = <&i2c_0_pins>;
                        pinctrl-names = "default";
                        status = "disabled";
                        #size-cells = <0>;
                        reg = <0x078b7000 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                               <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <100000>;
-                       dmas = <&blsp_dma 17>, <&blsp_dma 16>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 16>, <&blsp_dma 17>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        #size-cells = <0>;
                        reg = <0x78b9000 0x600>;
                        interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
-                       dmas = <&blsp_dma 21>, <&blsp_dma 20>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 20>, <&blsp_dma 21>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
                        #size-cells = <0>;
                        reg = <0x078ba000 0x600>;
                        interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <100000>;
-                       dmas = <&blsp_dma 23>, <&blsp_dma 22>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 22>, <&blsp_dma 23>;
+                       dma-names = "tx", "rx";
                        status = "disabled";
                };
 
index 42d93d3..00488af 100644 (file)
@@ -8,18 +8,14 @@
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/sound/apq8016-lpass.h>
 
 /*
  * Note: The original firmware from Huawei can only boot 32-bit kernels.
- * To boot arm64 kernels it is necessary to flash 64-bit TZ/HYP firmware
- * with EDL, e.g. taken from the DragonBoard 410c. This works because Huawei
- * forgot to set up (firmware) secure boot for some reason.
- *
- * Also note that Huawei no longer provides bootloader unlock codes.
- * This can be bypassed by patching the bootloader from a custom HYP firmware,
- * making it think the bootloader is unlocked.
- *
- * See: https://wiki.postmarketos.org/wiki/Huawei_Ascend_G7_(huawei-g7)
+ * To boot this device tree using arm64 it is necessary to flash 64-bit TZ/HYP
+ * firmware (e.g. taken from the DragonBoard 410c).
+ * See https://wiki.postmarketos.org/wiki/Huawei_Ascend_G7_(huawei-g7)
+ * for suggested installation instructions.
  */
 
 / {
        status = "okay";
 };
 
+&lpass {
+       status = "okay";
+};
+
 &pm8916_resin {
        status = "okay";
        linux,code = <KEY_VOLUMEDOWN>;
        cd-gpios = <&msmgpio 56 GPIO_ACTIVE_LOW>;
 };
 
+&sound {
+       status = "okay";
+
+       model = "msm8916";
+       audio-routing =
+               "AMIC1", "MIC BIAS External1",
+               "AMIC2", "MIC BIAS External2",
+               "AMIC3", "MIC BIAS External1";
+
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&cdc_pdm_lines_act>;
+       pinctrl-1 = <&cdc_pdm_lines_sus>;
+
+       primary-dai-link {
+               link-name = "WCD";
+               cpu {
+                       sound-dai = <&lpass MI2S_PRIMARY>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
+               };
+       };
+
+       tertiary-dai-link {
+               link-name = "WCD-Capture";
+               cpu {
+                       sound-dai = <&lpass MI2S_TERTIARY>;
+               };
+               codec {
+                       sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
+               };
+       };
+};
+
 &usb {
        status = "okay";
        extcon = <&usb_id>, <&usb_id>;
        extcon = <&usb_id>;
 };
 
+&wcd_codec {
+       qcom,micbias-lvl = <2800>;
+       qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
+       qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
+       qcom,hphl-jack-type-normally-open;
+};
+
 &smd_rpm_regulators {
        vdd_l1_l2_l3-supply = <&pm8916_s3>;
        vdd_l4_l5_l6-supply = <&pm8916_s4>;
index e349635..0547251 100644 (file)
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: clock-controller {
-                                       compatible = "qcom,rpmcc-msm8916";
+                                       compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
                                        #clock-cells = <1>;
                                };
 
                        #interrupt-cells = <4>;
                };
 
+               bam_dmux_dma: dma-controller@4044000 {
+                       compatible = "qcom,bam-v1.7.0";
+                       reg = <0x04044000 0x19000>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+
+                       num-channels = <6>;
+                       qcom,num-ees = <1>;
+                       qcom,powered-remotely;
+
+                       status = "disabled";
+               };
+
                mpss: remoteproc@4080000 {
                        compatible = "qcom,msm8916-mss-pil", "qcom,q6v5-pil";
                        reg = <0x04080000 0x100>,
                                memory-region = <&mpss_mem>;
                        };
 
+                       bam_dmux: bam-dmux {
+                               compatible = "qcom,bam-dmux";
+
+                               interrupt-parent = <&hexagon_smsm>;
+                               interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
+                               interrupt-names = "pc", "pc-ack";
+
+                               qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
+                               qcom,smem-state-names = "pc", "pc-ack";
+
+                               dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
+                               dma-names = "tx", "rx";
+
+                               status = "disabled";
+                       };
+
                        smd-edge {
                                interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
 
                        interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 1>, <&blsp_dma 0>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 0>, <&blsp_dma 1>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp1_uart1_default>;
                        pinctrl-1 = <&blsp1_uart1_sleep>;
                        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 3>, <&blsp_dma 2>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 2>, <&blsp_dma 3>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp1_uart2_default>;
                        pinctrl-1 = <&blsp1_uart2_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b5000 0x500>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c1_default>;
                        pinctrl-1 = <&i2c1_sleep>;
                        clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 5>, <&blsp_dma 4>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 4>, <&blsp_dma 5>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&spi1_default>;
                        pinctrl-1 = <&spi1_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b6000 0x500>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c2_default>;
                        pinctrl-1 = <&i2c2_sleep>;
                        clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 7>, <&blsp_dma 6>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 6>, <&blsp_dma 7>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&spi2_default>;
                        pinctrl-1 = <&spi2_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b7000 0x500>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c3_default>;
                        pinctrl-1 = <&i2c3_sleep>;
                        clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 9>, <&blsp_dma 8>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 8>, <&blsp_dma 9>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&spi3_default>;
                        pinctrl-1 = <&spi3_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b8000 0x500>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c4_default>;
                        pinctrl-1 = <&i2c4_sleep>;
                        clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 11>, <&blsp_dma 10>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 10>, <&blsp_dma 11>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&spi4_default>;
                        pinctrl-1 = <&spi4_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b9000 0x500>;
                        interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c5_default>;
                        pinctrl-1 = <&i2c5_sleep>;
                        clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 13>, <&blsp_dma 12>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 12>, <&blsp_dma 13>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&spi5_default>;
                        pinctrl-1 = <&spi5_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078ba000 0x500>;
                        interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c6_default>;
                        pinctrl-1 = <&i2c6_sleep>;
                        clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
                                 <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp_dma 15>, <&blsp_dma 14>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp_dma 14>, <&blsp_dma 15>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&spi6_default>;
                        pinctrl-1 = <&spi6_sleep>;
 
                                        qcom,mmio = <&pronto>;
 
-                                       bt {
+                                       bluetooth {
                                                compatible = "qcom,wcnss-bt";
                                        };
 
index 431228f..49903a6 100644 (file)
                        qcom,ipc = <&apcs 8 0>;
                        qcom,smd-edge = <15>;
 
-                       rpm_requests: rpm_requests {
+                       rpm_requests: rpm-requests {
                                compatible = "qcom,rpm-msm8953";
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: rpmcc {
-                                       compatible = "qcom,rpmcc-msm8953";
+                                       compatible = "qcom,rpmcc-msm8953", "qcom,rpmcc";
                                        clocks = <&xo_board>;
                                        clock-names = "xo";
                                        #clock-cells = <1>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78b5000 0x600>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
 
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_1_default>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78b6000 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
 
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_2_default>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78b7000 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_3_default>;
                        pinctrl-1 = <&i2c_3_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x78b8000 0x600>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_4_default>;
                        pinctrl-1 = <&i2c_4_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x7af5000 0x600>;
                        interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_5_default>;
                        pinctrl-1 = <&i2c_5_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x7af6000 0x600>;
                        interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_6_default>;
                        pinctrl-1 = <&i2c_6_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x7af7000 0x600>;
                        interrupts = <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_7_default>;
                        pinctrl-1 = <&i2c_7_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x7af8000 0x600>;
                        interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>;
-                       clock-names = "iface", "core";
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>;
+                       clock-names = "core", "iface";
+                       clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&i2c_8_default>;
                        pinctrl-1 = <&i2c_8_sleep>;
index 84558ab..7748b74 100644 (file)
 
        /* This enables graphical output via bootloader-enabled display */
        chosen {
-               bootargs = "earlycon=tty0 console=tty0";
+               bootargs = "earlycon=tty0 console=tty0 maxcpus=1";
 
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
 
-               framebuffer0: framebuffer@3404000 {
-                       status= "okay";
+               framebuffer0: framebuffer@3400000 {
                        compatible = "simple-framebuffer";
-                       reg = <0 0x3404000 0 (1080 * 1920 * 3)>;
+                       reg = <0 0x3400000 0 (1080 * 1920 * 3)>;
                        width = <1080>;
                        height = <1920>;
                        stride = <(1080 * 3)>;
                        format = "r8g8b8";
+                       /*
+                        * That's a lot of clocks, but it's necessary due
+                        * to unused clk cleanup & no panel driver yet..
+                        */
+                       clocks = <&mmcc MDSS_AHB_CLK>,
+                                <&mmcc MDSS_AXI_CLK>,
+                                <&mmcc MDSS_VSYNC_CLK>,
+                                <&mmcc MDSS_MDP_CLK>,
+                                <&mmcc MDSS_BYTE0_CLK>,
+                                <&mmcc MDSS_PCLK0_CLK>,
+                                <&mmcc MDSS_ESC0_CLK>;
+                       power-domains = <&mmcc MDSS_GDSC>;
                };
        };
 
        no-map;
 };
 
+&pm8994_spmi_regulators {
+       VDD_APC0: s8 {
+               regulator-min-microvolt = <680000>;
+               regulator-max-microvolt = <1180000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       /* APC1 is 3-phase, but quoting downstream, s11 is "the gang leader" */
+       VDD_APC1: s11 {
+               regulator-min-microvolt = <700000>;
+               regulator-max-microvolt = <1225000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
 &rpm_requests {
        pm8994-regulators {
                compatible = "qcom,rpm-pm8994-regulators";
index 58fe58c..7506437 100644 (file)
 /delete-node/ &cpu6_map;
 /delete-node/ &cpu7_map;
 
+&gcc {
+       compatible = "qcom,gcc-msm8992";
+};
+
+&mmcc {
+       compatible = "qcom,mmcc-msm8992";
+
+       assigned-clock-rates = <800000000>,
+                              <808000000>,
+                              <1020000000>,
+                              <960000000>,
+                              <800000000>;
+};
+
+&ocmem {
+       reg = <0xfdd00000 0x2000>, <0xfec00000 0x100000>;
+
+       gmu-sram@0 {
+               reg = <0x0 0x80000>;
+       };
+};
+
 &rpmcc {
-       compatible = "qcom,rpmcc-msm8992";
+       compatible = "qcom,rpmcc-msm8992", "qcom,rpmcc";
 };
 
 &tcsr_mutex {
index 0e3dd48..dbfbb77 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-only
 /* Copyright (c) 2015, Huawei Inc. All rights reserved.
  * Copyright (c) 2016, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021, Petr Vorel <petr.vorel@gmail.com>
+ * Copyright (c) 2021-2022, Petr Vorel <petr.vorel@gmail.com>
  */
 
 /dts-v1/;
        chosen {
                stdout-path = "serial0:115200n8";
        };
+};
 
-       soc {
-               serial@f991e000 {
-                       status = "okay";
-                       pinctrl-names = "default", "sleep";
-                       pinctrl-0 = <&blsp1_uart2_default>;
-                       pinctrl-1 = <&blsp1_uart2_sleep>;
-               };
-       };
+&blsp1_uart2 {
+       status = "okay";
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&blsp1_uart2_default>;
+       pinctrl-1 = <&blsp1_uart2_sleep>;
 };
 
 &tlmm {
        gpio-reserved-ranges = <85 4>;
 };
+
+&sdhc1 {
+       status = "okay";
+       mmc-hs400-1_8v;
+};
index dde7ed1..e5a45af 100644 (file)
        /* NXP PN547 NFC */
 };
 
-&blsp1_i2c4 {
-       status = "okay";
-       clock-frequency = <355000>;
-
-       /* Empty but active */
-};
-
 &blsp1_i2c6 {
        status = "okay";
        clock-frequency = <355000>;
 };
 
 &rpm_requests {
+       /* PMI8994 should probe first, because pmi8994_bby supplies some of PM8994's regulators */
+       pmi8994_regulators: pmi8994-regulators {
+               compatible = "qcom,rpm-pmi8994-regulators";
+
+               vdd_s1-supply = <&vph_pwr>;
+               vdd_bst_byp-supply = <&vph_pwr>;
+
+               pmi8994_s1: s1 {
+                       regulator-min-microvolt = <1025000>;
+                       regulator-max-microvolt = <1025000>;
+               };
+
+               /* S2 & S3 - VDD_GFX */
+
+               pmi8994_bby: boost-bypass {
+                       regulator-min-microvolt = <3150000>;
+                       regulator-max-microvolt = <3600000>;
+               };
+       };
+
        pm8994_regulators: pm8994-regulators {
                compatible = "qcom,rpm-pm8994-regulators";
 
-               vdd_s1-supply = <&vph_pwr>;
-               vdd_s2-supply = <&vph_pwr>;
                vdd_s3-supply = <&vph_pwr>;
                vdd_s4-supply = <&vph_pwr>;
                vdd_s5-supply = <&vph_pwr>;
                vdd_s6-supply = <&vph_pwr>;
                vdd_s7-supply = <&vph_pwr>;
-               vdd_s8-supply = <&vph_pwr>;
-               vdd_s9-supply = <&vph_pwr>;
-               vdd_s10-supply = <&vph_pwr>;
-               vdd_s11-supply = <&vph_pwr>;
-               vdd_s12-supply = <&vph_pwr>;
                vdd_l1-supply = <&pmi8994_s1>;
                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_l6_l12_l32-supply = <&pm8994_s5>;
                vdd_l8_l16_l30-supply = <&vph_pwr>;
                vdd_l9_l10_l18_l22-supply = <&pmi8994_bby>;
                pm8994_s4: s4 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
+                       regulator-system-load = <325000>;
                        regulator-allow-set-load;
                        regulator-always-on;
-                       regulator-system-load = <325000>;
                };
 
                pm8994_s5: s5 {
                pm8994_l2: l2 {
                        regulator-min-microvolt = <1250000>;
                        regulator-max-microvolt = <1250000>;
-                       regulator-allow-set-load;
                        regulator-system-load = <10000>;
+                       regulator-allow-set-load;
                };
 
                pm8994_l3: l3 {
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1100000>;
+                       regulator-boot-on;
                };
 
                pm8994_l4: l4 {
                pm8994_l12: l12 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
-                       regulator-allow-set-load;
                        regulator-system-load = <10000>;
+                       regulator-allow-set-load;
                };
 
                pm8994_l13: l13 {
                pm8994_l14: l14 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
-                       regulator-allow-set-load;
                        regulator-system-load = <10000>;
+                       regulator-allow-set-load;
+                       regulator-boot-on;
                };
 
                pm8994_l15: l15 {
                pm8994_l17: l17 {
                        regulator-min-microvolt = <2200000>;
                        regulator-max-microvolt = <2200000>;
+                       regulator-boot-on;
                };
 
                pm8994_l18: l18 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
                        regulator-always-on;
+                       regulator-boot-on;
                };
 
                pm8994_l19: l19 {
                        regulator-min-microvolt = <2850000>;
                        regulator-max-microvolt = <2850000>;
+                       regulator-boot-on;
                };
 
                pm8994_l20: l20 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
-                       regulator-always-on;
-                       regulator-boot-on;
-                       regulator-allow-set-load;
                        regulator-system-load = <570000>;
+                       regulator-allow-set-load;
                };
 
                pm8994_l21: l21 {
                        regulator-min-microvolt = <2950000>;
                        regulator-max-microvolt = <2950000>;
-                       regulator-always-on;
-                       regulator-allow-set-load;
                        regulator-system-load = <800000>;
+                       regulator-allow-set-load;
                };
 
                pm8994_l22: l22 {
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3000000>;
+                       regulator-boot-on;
                };
 
                pm8994_l23: l23 {
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
+                       regulator-always-on;
+                       regulator-boot-on;
                };
 
                pm8994_l24: l24 {
                pm8994_l25: l25 {
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1000000>;
+                       regulator-boot-on;
                };
 
                pm8994_l26: l26 {
                pm8994_l27: l27 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
+                       regulator-boot-on;
                };
 
                pm8994_l28: l28 {
                        regulator-min-microvolt = <1000000>;
                        regulator-max-microvolt = <1000000>;
-                       regulator-allow-set-load;
                        regulator-system-load = <10000>;
+                       regulator-allow-set-load;
                };
 
                pm8994_l29: l29 {
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <2700000>;
+                       regulator-boot-on;
                };
 
                pm8994_l30: l30 {
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
+                       regulator-boot-on;
                };
 
                pm8994_l31: l31 {
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
-                       regulator-allow-set-load;
                        regulator-system-load = <10000>;
+                       regulator-allow-set-load;
                };
 
                pm8994_l32: l32 {
                        regulator-max-microvolt = <1800000>;
                };
 
-               pm8994_lvs1: lvs1 {};
-               pm8994_lvs2: lvs2 {};
-       };
-
-       pmi8994_regulators: pmi8994-regulators {
-               compatible = "qcom,rpm-pmi8994-regulators";
-
-               vdd_s1-supply = <&vph_pwr>;
-               vdd_bst_byp-supply = <&vph_pwr>;
-
-               pmi8994_s1: s1 {
-                       regulator-min-microvolt = <1025000>;
-                       regulator-max-microvolt = <1025000>;
+               pm8994_lvs1: lvs1 {
+                       regulator-boot-on;
                };
-
-               /* S2 & S3 - VDD_GFX */
-
-               pmi8994_bby: boost-bypass {
-                       regulator-min-microvolt = <3150000>;
-                       regulator-max-microvolt = <3600000>;
+               pm8994_lvs2: lvs2 {
+                       regulator-boot-on;
                };
        };
 };
index 8c1dc51..367ed91 100644 (file)
@@ -4,6 +4,8 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-msm8994.h>
+#include <dt-bindings/clock/qcom,mmcc-msm8994.h>
+#include <dt-bindings/clock/qcom,rpmcc.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 
 / {
        #address-cells = <2>;
        #size-cells = <2>;
 
+       aliases {
+               mmc1 = &sdhc1;
+               mmc2 = &sdhc2;
+       };
+
        chosen { };
 
        clocks {
                        no-map;
                };
 
-               cont_splash_mem: memory@3800000 {
-                       reg = <0 0x03800000 0 0x2400000>;
+               cont_splash_mem: memory@3401000 {
+                       reg = <0 0x03401000 0 0x2200000>;
                        no-map;
                };
 
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
                        qcom,ipc = <&apcs 8 0>;
                        qcom,smd-edge = <15>;
-                       qcom,local-pid = <0>;
                        qcom,remote-pid = <6>;
 
                        rpm_requests: rpm-requests {
                                qcom,smd-channels = "rpm_requests";
 
                                rpmcc: rpmcc {
-                                       compatible = "qcom,rpmcc-msm8994";
+                                       compatible = "qcom,rpmcc-msm8994", "qcom,rpmcc";
                                        #clock-cells = <1>;
                                };
 
                        #mbox-cells = <1>;
                };
 
+               watchdog@f9017000 {
+                       compatible = "qcom,apss-wdt-msm8994", "qcom,kpss-wdt";
+                       reg = <0xf9017000 0x1000>;
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&sleep_clk>;
+                       timeout-sec = <10>;
+               };
+
                timer@f9020000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        #dma-cells = <1>;
                        qcom,ee = <0>;
                        qcom,controlled-remotely;
-                       num-channels = <18>;
+                       num-channels = <24>;
                        qcom,num-ees = <4>;
                };
 
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9923000 0x500>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                               <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
                        dma-names = "tx", "rx";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9924000 0x500>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                               <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
                        dma-names = "tx", "rx";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9926000 0x500>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                               <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        dmas = <&blsp1_dma 18>, <&blsp1_dma 19>;
                        dma-names = "tx", "rx";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9927000 0x500>;
                        interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                               <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
                        dma-names = "tx", "rx";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9928000 0x500>;
                        interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                               <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        dmas = <&blsp1_dma 22>, <&blsp1_dma 23>;
                        dma-names = "tx", "rx";
                        #dma-cells = <1>;
                        qcom,ee = <0>;
                        qcom,controlled-remotely;
-                       num-channels = <18>;
+                       num-channels = <24>;
                        qcom,num-ees = <4>;
                };
 
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9963000 0x500>;
                        interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                       <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
                        dma-names = "tx", "rx";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0xf9967000 0x500>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                               <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <355000>;
                        dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
                        dma-names = "tx", "rx";
                        #power-domain-cells = <1>;
                        reg = <0xfc400000 0x2000>;
 
-                       clock-names = "xo", "sleep_clk";
+                       clock-names = "xo", "sleep";
                        clocks = <&xo_board>, <&sleep_clk>;
                };
 
                                drive-strength = <2>;
                        };
                };
+
+               mmcc: clock-controller@fd8c0000 {
+                       compatible = "qcom,mmcc-msm8994";
+                       reg = <0xfd8c0000 0x5200>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+
+                       clock-names = "xo",
+                                     "gpll0",
+                                     "mmssnoc_ahb",
+                                     "oxili_gfx3d_clk_src",
+                                     "dsi0pll",
+                                     "dsi0pllbyte",
+                                     "dsi1pll",
+                                     "dsi1pllbyte",
+                                     "hdmipll";
+                       clocks = <&xo_board>,
+                                <&gcc GPLL0_OUT_MMSSCC>,
+                                <&rpmcc RPM_SMD_MMSSNOC_AHB_CLK>,
+                                <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>,
+                                <0>;
+
+                       assigned-clocks = <&mmcc MMPLL0_PLL>,
+                                         <&mmcc MMPLL1_PLL>,
+                                         <&mmcc MMPLL3_PLL>,
+                                         <&mmcc MMPLL4_PLL>,
+                                         <&mmcc MMPLL5_PLL>;
+                       assigned-clock-rates = <800000000>,
+                                              <1167000000>,
+                                              <1020000000>,
+                                              <960000000>,
+                                              <600000000>;
+               };
+
+               ocmem: ocmem@fdd00000 {
+                       compatible = "qcom,msm8974-ocmem";
+                       reg = <0xfdd00000 0x2000>,
+                             <0xfec00000 0x200000>;
+                       reg-names = "ctrl", "mem";
+                       clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
+                                <&mmcc OCMEMCX_OCMEMNOC_CLK>;
+                       clock-names = "core", "iface";
+
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       gmu_sram: gmu-sram@0 {
+                               reg = <0x0 0x180000>;
+                       };
+               };
        };
 
        timer: timer {
index 6a1699a..596ad4c 100644 (file)
        chosen {
                stdout-path = "serial0";
        };
+};
 
-       soc {
-               serial@75b0000 {
-                       status = "okay";
-               };
-       };
+&blsp2_uart2 {
+       status = "okay";
 };
 
 &hdmi {
index 3bb50ce..ca3c633 100644 (file)
 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
 
-/delete-node/ &slpi_region;
-/delete-node/ &venus_region;
-/delete-node/ &zap_shader_region;
+/delete-node/ &adsp_mem;
+/delete-node/ &slpi_mem;
+/delete-node/ &venus_mem;
+/delete-node/ &gpu_mem;
 
 / {
        qcom,msm-id = <246 0x30001>; /* MSM8996 V3.1 (Final) */
                        no-map;
                };
 
-               zap_shader_region: gpu@90400000 {
+               adsp_mem: adsp@8ea00000 {
+                       reg = <0x0 0x8ea00000 0x0 0x1a00000>;
+                       no-map;
+               };
+
+               gpu_mem: gpu@90400000 {
                        compatible = "shared-dma-pool";
                        reg = <0x0 0x90400000 0x0 0x2000>;
                        no-map;
                };
 
-               slpi_region: memory@90500000 {
+               slpi_mem: memory@90500000 {
                        reg = <0 0x90500000 0 0xa00000>;
                        no-map;
                };
 
-               venus_region: memory@90f00000 {
+               venus_mem: memory@90f00000 {
                        reg = <0 0x90f00000 0 0x500000>;
                        no-map;
                };
index 7a9fcbe..be4f643 100644 (file)
 
                /* This platform has all PIL regions offset by 0x1400000 */
                /delete-node/ mpss@88800000;
-               mpss_region: mpss@89c00000 {
+               mpss_mem: mpss@89c00000 {
                        reg = <0x0 0x89c00000 0x0 0x6200000>;
                        no-map;
                };
 
                /delete-node/ adsp@8ea00000;
-               adsp_region: adsp@8ea00000 {
+               adsp_mem: adsp@8fe00000 {
                        reg = <0x0 0x8fe00000 0x0 0x1b00000>;
                        no-map;
                };
 
-               /delete-node/ slpi@90b00000;
-               slpi_region: slpi@91900000 {
+               /delete-node/ slpi@90500000;
+               slpi_mem: slpi@91900000 {
                        reg = <0x0 0x91900000 0x0 0xa00000>;
                        no-map;
                };
 
-               /delete-node/ gpu@8f200000;
-               zap_shader_region: gpu@92300000 {
+               /delete-node/ gpu@90f00000;
+               gpu_mem: gpu@92300000 {
                        compatible = "shared-dma-pool";
                        reg = <0x0 0x92300000 0x0 0x2000>;
                        no-map;
                };
 
                /delete-node/ venus@91000000;
-               venus_region: venus@90400000 {
+               venus_mem: venus@92400000 {
                        reg = <0x0 0x92400000 0x0 0x500000>;
                        no-map;
                };
                        pmsg-size = <0x40000>;
                };
 
-               /delete-node/ rmtfs@86700000;
+               /delete-node/ rmtfs;
                rmtfs@f6c00000 {
                        compatible = "qcom,rmtfs-mem";
                        reg = <0 0xf6c00000 0 0x200000>;
                };
 
                /delete-node/ mba@91500000;
-               mba_region: mba@f6f00000 {
+               mba_mem: mba@f6f00000 {
                        reg = <0x0 0xf6f00000 0x0 0x100000>;
                        no-map;
                };
        vdd-gfx-supply = <&vdd_gfx>;
 };
 
+&mss_pil {
+       status = "okay";
+
+       pll-supply = <&vreg_l12a_1p8>;
+};
+
 &pcie0 {
        status = "okay";
 
        linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&slpi_pil {
+       status = "okay";
+
+       px-supply = <&vreg_lvs2a_1p8>;
+};
+
 &usb3 {
        status = "okay";
        extcon = <&typec>;
 
        vdda-phy-supply = <&vreg_l28a_0p925>;
        vdda-pll-supply = <&vreg_l12a_1p8>;
-
-       vdda-phy-max-microamp = <18380>;
-       vdda-pll-max-microamp = <9440>;
-
        vddp-ref-clk-supply = <&vreg_l25a_1p2>;
-       vddp-ref-clk-max-microamp = <100>;
-       vddp-ref-clk-always-on;
 };
 
 &venus {
index 34f82e0..22978d0 100644 (file)
        status = "okay";
 };
 
+&mss_pil {
+       firmware-name = "qcom/msm8996/gemini/mba.mbn",
+                       "qcom/msm8996/gemini/modem.mbn";
+};
+
 &q6asmdai {
        dai@0 {
                reg = <0>;
        };
 };
 
+&slpi_pil {
+       firmware-name = "qcom/msm8996/gemini/slpi.mbn";
+};
+
 &sound {
        compatible = "qcom,apq8096-sndcard";
        model = "gemini";
index 27a45dd..1e2dd67 100644 (file)
        status = "disabled";
 };
 
+&mss_pil {
+       firmware-name = "qcom/msm8996/scorpio/mba.mbn",
+                       "qcom/msm8996/scorpio/modem.mbn";
+};
+
 &q6asmdai {
        dai@0 {
                reg = <0>;
        };
 };
 
+&slpi_pil {
+       firmware-name = "qcom/msm8996/scorpio/slpi.mbn";
+};
+
 &sound {
        compatible = "qcom,apq8096-sndcard";
        model = "scorpio";
index b9a48cf..205af7b 100644 (file)
                #size-cells = <2>;
                ranges;
 
-               mba_region: mba@91500000 {
-                       reg = <0x0 0x91500000 0x0 0x200000>;
+               hyp_mem: memory@85800000 {
+                       reg = <0x0 0x85800000 0x0 0x600000>;
                        no-map;
                };
 
-               slpi_region: slpi@90b00000 {
-                       reg = <0x0 0x90b00000 0x0 0xa00000>;
+               xbl_mem: memory@85e00000 {
+                       reg = <0x0 0x85e00000 0x0 0x200000>;
                        no-map;
                };
 
-               venus_region: venus@90400000 {
-                       reg = <0x0 0x90400000 0x0 0x700000>;
+               smem_mem: smem-mem@86000000 {
+                       reg = <0x0 0x86000000 0x0 0x200000>;
                        no-map;
                };
 
-               adsp_region: adsp@8ea00000 {
-                       reg = <0x0 0x8ea00000 0x0 0x1a00000>;
+               tz_mem: memory@86200000 {
+                       reg = <0x0 0x86200000 0x0 0x2600000>;
                        no-map;
                };
 
-               mpss_region: mpss@88800000 {
-                       reg = <0x0 0x88800000 0x0 0x6200000>;
+               rmtfs_mem: rmtfs {
+                       compatible = "qcom,rmtfs-mem";
+
+                       size = <0x0 0x200000>;
+                       alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>;
                        no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <15>;
                };
 
-               smem_mem: smem-mem@86000000 {
-                       reg = <0x0 0x86000000 0x0 0x200000>;
+               mpss_mem: mpss@88800000 {
+                       reg = <0x0 0x88800000 0x0 0x6200000>;
                        no-map;
                };
 
-               memory@85800000 {
-                       reg = <0x0 0x85800000 0x0 0x800000>;
+               adsp_mem: adsp@8ea00000 {
+                       reg = <0x0 0x8ea00000 0x0 0x1b00000>;
                        no-map;
                };
 
-               memory@86200000 {
-                       reg = <0x0 0x86200000 0x0 0x2600000>;
+               slpi_mem: slpi@90500000 {
+                       reg = <0x0 0x90500000 0x0 0xa00000>;
                        no-map;
                };
 
-               rmtfs@86700000 {
-                       compatible = "qcom,rmtfs-mem";
-
-                       size = <0x0 0x200000>;
-                       alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>;
+               gpu_mem: gpu@90f00000 {
+                       compatible = "shared-dma-pool";
+                       reg = <0x0 0x90f00000 0x0 0x100000>;
                        no-map;
+               };
 
-                       qcom,client-id = <1>;
-                       qcom,vmid = <15>;
+               venus_mem: venus@91000000 {
+                       reg = <0x0 0x91000000 0x0 0x500000>;
+                       no-map;
                };
 
-               zap_shader_region: gpu@8f200000 {
-                       compatible = "shared-dma-pool";
-                       reg = <0x0 0x90b00000 0x0 0xa00000>;
+               mba_mem: mba@91500000 {
+                       reg = <0x0 0x91500000 0x0 0x200000>;
                        no-map;
                };
        };
                        qcom,glink-channels = "rpm_requests";
 
                        rpmcc: qcom,rpmcc {
-                               compatible = "qcom,rpmcc-msm8996";
+                               compatible = "qcom,rpmcc-msm8996", "qcom,rpmcc";
                                #clock-cells = <1>;
                        };
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <2>;
 
-               smp2p_adsp_out: master-kernel {
+               adsp_smp2p_out: master-kernel {
                        qcom,entry-name = "master-kernel";
                        #qcom,smem-state-cells = <1>;
                };
 
-               smp2p_adsp_in: slave-kernel {
+               adsp_smp2p_in: slave-kernel {
                        qcom,entry-name = "slave-kernel";
 
                        interrupt-controller;
                };
        };
 
-       smp2p-modem {
+       smp2p-mpss {
                compatible = "qcom,smp2p";
                qcom,smem = <435>, <428>;
 
                qcom,local-pid = <0>;
                qcom,remote-pid = <1>;
 
-               modem_smp2p_out: master-kernel {
+               mpss_smp2p_out: master-kernel {
                        qcom,entry-name = "master-kernel";
                        #qcom,smem-state-cells = <1>;
                };
 
-               modem_smp2p_in: slave-kernel {
+               mpss_smp2p_in: slave-kernel {
                        qcom,entry-name = "slave-kernel";
 
                        interrupt-controller;
                qcom,local-pid = <0>;
                qcom,remote-pid = <3>;
 
-               smp2p_slpi_in: slave-kernel {
+               slpi_smp2p_out: master-kernel {
+                       qcom,entry-name = "master-kernel";
+                       #qcom,smem-state-cells = <1>;
+               };
+
+               slpi_smp2p_in: slave-kernel {
                        qcom,entry-name = "slave-kernel";
+
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
-
-               smp2p_slpi_out: master-kernel {
-                       qcom,entry-name = "master-kernel";
-                       #qcom,smem-state-cells = <1>;
-               };
        };
 
        soc: soc {
                        #thermal-sensor-cells = <1>;
                };
 
-               cryptobam: dma@644000 {
+               cryptobam: dma-controller@644000 {
                        compatible = "qcom,bam-v1.7.0";
                        reg = <0x00644000 0x24000>;
                        interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
                                reg-names = "mdp_phys";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <0>;
 
                                clocks = <&mmcc MDSS_AHB_CLK>,
                                         <&mmcc MDSS_AXI_CLK>,
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <4>;
 
                                clocks = <&mmcc MDSS_MDP_CLK>,
                                         <&mmcc MDSS_BYTE0_CLK>,
                                            "hdcp_physical";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <8>;
 
                                clocks = <&mmcc MDSS_MDP_CLK>,
                                         <&mmcc MDSS_AHB_CLK>,
                        };
 
                        zap-shader {
-                               memory-region = <&zap_shader_region>;
+                               memory-region = <&gpu_mem>;
                        };
                };
 
                        ranges;
 
                        pcie0: pcie@600000 {
-                               compatible = "qcom,pcie-msm8996", "snps,dw-pcie";
+                               compatible = "qcom,pcie-msm8996";
                                status = "disabled";
                                power-domains = <&gcc PCIE0_GDSC>;
                                bus-range = <0x00 0xff>;
                        };
 
                        pcie1: pcie@608000 {
-                               compatible = "qcom,pcie-msm8996", "snps,dw-pcie";
+                               compatible = "qcom,pcie-msm8996";
                                power-domains = <&gcc PCIE1_GDSC>;
                                bus-range = <0x00 0xff>;
                                num-lanes = <1>;
                        };
 
                        pcie2: pcie@610000 {
-                               compatible = "qcom,pcie-msm8996", "snps,dw-pcie";
+                               compatible = "qcom,pcie-msm8996";
                                power-domains = <&gcc PCIE2_GDSC>;
                                bus-range = <0x00 0xff>;
                                num-lanes = <1>;
                };
 
                ufshc: ufshc@624000 {
-                       compatible = "qcom,ufshc";
+                       compatible = "qcom,msm8996-ufshc", "qcom,ufshc",
+                                    "jedec,ufs-2.0";
                        reg = <0x00624000 0x2500>;
                        interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
 
                                 <&venus_smmu 0x2c>,
                                 <&venus_smmu 0x2d>,
                                 <&venus_smmu 0x31>;
-                       memory-region = <&venus_region>;
+                       memory-region = <&venus_mem>;
                        status = "disabled";
 
                        video-decoder {
                        clock-names = "iface", "bus";
                };
 
+               slpi_pil: remoteproc@1c00000 {
+                       compatible = "qcom,msm8996-slpi-pil";
+                       reg = <0x01c00000 0x4000>;
+
+                       interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>,
+                                             <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog",
+                                         "fatal",
+                                         "ready",
+                                         "handover",
+                                         "stop-ack";
+
+                       clocks = <&xo_board>,
+                                <&rpmcc RPM_SMD_AGGR2_NOC_CLK>;
+                       clock-names = "xo", "aggre2";
+
+                       memory-region = <&slpi_mem>;
+
+                       qcom,smem-states = <&slpi_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       power-domains = <&rpmpd MSM8996_VDDSSCX>;
+                       power-domain-names = "ssc_cx";
+
+                       status = "disabled";
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 176 IRQ_TYPE_EDGE_RISING>;
+
+                               label = "dsps";
+                               mboxes = <&apcs_glb 25>;
+                               qcom,smd-edge = <3>;
+                               qcom,remote-pid = <3>;
+                       };
+               };
+
+               mss_pil: remoteproc@2080000 {
+                       compatible = "qcom,msm8996-mss-pil";
+                       reg = <0x2080000 0x100>,
+                             <0x2180000 0x020>;
+                       reg-names = "qdsp6", "rmb";
+
+                       interrupts-extended = <&intc 0 448 IRQ_TYPE_EDGE_RISING>,
+                                             <&mpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&mpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&mpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&mpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&mpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack",
+                                         "shutdown-ack";
+
+                       clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
+                                <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
+                                <&gcc GCC_BOOT_ROM_AHB_CLK>,
+                                <&xo_board>,
+                                <&gcc GCC_MSS_GPLL0_DIV_CLK>,
+                                <&gcc GCC_MSS_SNOC_AXI_CLK>,
+                                <&gcc GCC_MSS_MNOC_BIMC_AXI_CLK>,
+                                <&rpmcc RPM_SMD_PCNOC_CLK>,
+                                <&rpmcc RPM_SMD_QDSS_CLK>;
+                       clock-names = "iface", "bus", "mem", "xo", "gpll0_mss",
+                                     "snoc_axi", "mnoc_axi", "pnoc", "qdss";
+
+                       resets = <&gcc GCC_MSS_RESTART>;
+                       reset-names = "mss_restart";
+
+                       power-domains = <&rpmpd MSM8996_VDDCX>,
+                                       <&rpmpd MSM8996_VDDMX>;
+                       power-domain-names = "cx", "mx";
+
+                       qcom,smem-states = <&mpss_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       qcom,halt-regs = <&tcsr_mutex_regs 0x23000 0x25000 0x24000>;
+
+                       status = "disabled";
+
+                       mba {
+                               memory-region = <&mba_mem>;
+                       };
+
+                       mpss {
+                               memory-region = <&mpss_mem>;
+                       };
+
+                       smd-edge {
+                               interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+
+                               label = "mpss";
+                               mboxes = <&apcs_glb 12>;
+                               qcom,smd-edge = <0>;
+                               qcom,remote-pid = <1>;
+                       };
+               };
+
                stm@3002000 {
                        compatible = "arm,coresight-stm", "arm,primecell";
                        reg = <0x3002000 0x1000>,
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x07577000 0x1000>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                               <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp1_i2c3_default>;
                        pinctrl-1 = <&blsp1_i2c3_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x075b5000 0x1000>;
                        interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                               <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp2_i2c1_default>;
                        pinctrl-1 = <&blsp2_i2c1_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x075b6000 0x1000>;
                        interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                               <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp2_i2c2_default>;
                        pinctrl-1 = <&blsp2_i2c2_sleep>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x075b7000 0x1000>;
                        interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                               <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        clock-frequency = <400000>;
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp2_i2c3_default>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x75b9000 0x1000>;
                        interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                               <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp2_i2c5_default>;
                        dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x75ba000 0x1000>;
                        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                               <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default", "sleep";
                        pinctrl-0 = <&blsp2_i2c6_default>;
                        pinctrl-1 = <&blsp2_i2c6_sleep>;
                        reg = <0x09300000 0x80000>;
 
                        interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                                             <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
                        interrupt-names = "wdog", "fatal", "ready",
                                          "handover", "stop-ack";
 
                        clocks = <&rpmcc RPM_SMD_BB_CLK1>;
                        clock-names = "xo";
 
-                       memory-region = <&adsp_region>;
+                       memory-region = <&adsp_mem>;
 
-                       qcom,smem-states = <&smp2p_adsp_out 0>;
+                       qcom,smem-states = <&adsp_smp2p_out 0>;
                        qcom,smem-state-names = "stop";
 
                        power-domains = <&rpmpd MSM8996_VDDCX>;
index 9823d48..dbaea36 100644 (file)
        };
 };
 
+&blsp1_i2c6 {
+       status = "okay";
+
+       nfc@28 {
+               compatible = "nxp,nxp-nci-i2c";
+               reg = <0x28>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <92 IRQ_TYPE_LEVEL_HIGH>;
+
+               enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&nfc_int_active &nfc_enable_active>;
+       };
+};
+
 &blsp1_uart3 {
        status = "okay";
 
                drive-strength = <8>;
                bias-pull-up;
        };
+
+       nfc_int_active: nfc-int-active {
+               pins = "gpio92";
+               function = "gpio";
+               drive-strength = <6>;
+               bias-pull-up;
+       };
+
+       nfc_enable_active: nfc-enable-active {
+               pins = "gpio12", "gpio116";
+               function = "gpio";
+               drive-strength = <6>;
+               bias-pull-up;
+       };
 };
 
 &ufshc {
index 2fda21e..4a84de6 100644 (file)
 
                        clock-names = "xo", "sleep_clk";
                        clocks = <&xo>, <&sleep_clk>;
+
+                       /*
+                        * The hypervisor typically configures the memory region where these clocks
+                        * reside as read-only for the HLOS. If the HLOS tried to enable or disable
+                        * these clocks on a device with such configuration (e.g. because they are
+                        * enabled but unused during boot-up), the device will most likely decide
+                        * to reboot.
+                        * In light of that, we are conservative here and we list all such clocks
+                        * as protected. The board dts (or a user-supplied dts) can override the
+                        * list of protected clocks if it differs from the norm, and it is in fact
+                        * desired for the HLOS to manage these clocks
+                        */
+                       protected-clocks = <AGGRE2_SNOC_NORTH_AXI>,
+                                          <SSC_XO>,
+                                          <SSC_CNOC_AHBS_CLK>;
                };
 
                rpm_msg_ram: sram@778000 {
index 308f9ca..b10f33a 100644 (file)
@@ -6,6 +6,30 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
+/ {
+       thermal-zones {
+               pm8350_thermal: pm8350c-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm8350_temp_alarm>;
+
+                       trips {
+                               pm8350_trip0: trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               pm8350_crit: pm8350c-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
 &spmi_bus {
        pm8350: pmic@1 {
                compatible = "qcom,pm8350", "qcom,spmi-pmic";
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pm8350_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
                pm8350_gpios: gpio@8800 {
                        compatible = "qcom,pm8350-gpio";
                        reg = <0x8800>;
index b23bb1d..f1d1d4c 100644 (file)
@@ -6,6 +6,30 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
+/ {
+       thermal-zones {
+               pm8350b_thermal: pm8350c-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm8350b_temp_alarm>;
+
+                       trips {
+                               pm8350b_trip0: trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               pm8350b_crit: pm8350c-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
 &spmi_bus {
        pm8350b: pmic@3 {
                compatible = "qcom,pm8350b", "qcom,spmi-pmic";
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pm8350b_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
                pm8350b_gpios: gpio@8800 {
                        compatible = "qcom,pm8350b-gpio";
                        reg = <0x8800>;
index e1b75ae..e0bbb67 100644 (file)
                        interrupt-controller;
                        #interrupt-cells = <2>;
                };
+
+               pm8350c_pwm: pwm@e800 {
+                       compatible = "qcom,pm8350c-pwm";
+                       reg = <0xe800>;
+                       #pwm-cells = <2>;
+                       status = "disabled";
+               };
        };
 };
 
-&thermal_zones {
-       pm8350c_thermal: pm8350c-thermal {
-               polling-delay-passive = <100>;
-               polling-delay = <0>;
-               thermal-sensors = <&pm8350c_temp_alarm>;
-
-               trips {
-                       pm8350c_trip0: trip0 {
-                               temperature = <95000>;
-                               hysteresis = <0>;
-                               type = "passive";
-                       };
+/ {
+       thermal-zones {
+               pm8350c_thermal: pm8350c-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pm8350c_temp_alarm>;
+
+                       trips {
+                               pm8350c_trip0: trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
 
-                       pm8350c_crit: pm8350c-crit {
-                               temperature = <115000>;
-                               hysteresis = <0>;
-                               type = "critical";
+                               pm8350c_crit: pm8350c-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
                        };
                };
        };
diff --git a/arch/arm64/boot/dts/qcom/pm8450.dtsi b/arch/arm64/boot/dts/qcom/pm8450.dtsi
new file mode 100644 (file)
index 0000000..ae5bce3
--- /dev/null
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2022, Linaro Limited
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+       thermal-zones {
+               pm8450-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+
+                       thermal-sensors = <&pm8450_temp_alarm>;
+
+                       trips {
+                               trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               trip1 {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "hot";
+                               };
+                       };
+               };
+       };
+};
+
+
+&spmi_bus {
+       pm8450: pmic@7 {
+               compatible = "qcom,pm8450", "qcom,spmi-pmic";
+               reg = <0x7 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               pm8450_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x7 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
+               pm8450_gpios: gpio@8800 {
+                       compatible = "qcom,pm8450-gpio", "qcom,spmi-gpio";
+                       reg = <0x8800>;
+                       gpio-controller;
+                       gpio-ranges = <&pm8450_gpios 0 0 4>;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+       };
+};
index b4b6ba2..febda50 100644 (file)
        };
 };
 
-&thermal_zones {
-       pmr735a_thermal: pmr735a-thermal {
-               polling-delay-passive = <100>;
-               polling-delay = <0>;
-               thermal-sensors = <&pmr735a_temp_alarm>;
+/ {
+       thermal-zones {
+               pmr735a_thermal: pmr735a-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmr735a_temp_alarm>;
 
-               trips {
-                       pmr735a_trip0: trip0 {
-                               temperature = <95000>;
-                               hysteresis = <0>;
-                               type = "passive";
-                       };
+                       trips {
+                               pmr735a_trip0: trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
 
-                       pmr735a_crit: pmr735a-crit {
-                               temperature = <115000>;
-                               hysteresis = <0>;
-                               type = "critical";
+                               pmr735a_crit: pmr735a-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
                        };
                };
        };
index 1144086..6043241 100644 (file)
@@ -6,6 +6,30 @@
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
+/ {
+       thermal-zones {
+               pmr735a_thermal: pmr735a-thermal {
+                       polling-delay-passive = <100>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&pmr735b_temp_alarm>;
+
+                       trips {
+                               pmr735b_trip0: trip0 {
+                                       temperature = <95000>;
+                                       hysteresis = <0>;
+                                       type = "passive";
+                               };
+
+                               pmr735b_crit: pmr735a-crit {
+                                       temperature = <115000>;
+                                       hysteresis = <0>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+};
+
 &spmi_bus {
        pmr735b: pmic@5 {
                compatible = "qcom,pmr735b", "qcom,spmi-pmic";
                #address-cells = <1>;
                #size-cells = <0>;
 
+               pmr735b_temp_alarm: temp-alarm@a00 {
+                       compatible = "qcom,spmi-temp-alarm";
+                       reg = <0xa00>;
+                       interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+                       #thermal-sensor-cells = <0>;
+               };
+
                pmr735b_gpios: gpio@8800 {
                        compatible = "qcom,pmr735b-gpio";
                        reg = <0x8800>;
index 3f06f7c..bc446c6 100644 (file)
                        qcom,glink-channels = "rpm_requests";
 
                        rpmcc: clock-controller {
-                               compatible = "qcom,rpmcc-qcs404";
+                               compatible = "qcom,rpmcc-qcs404", "qcom,rpmcc";
                                #clock-cells = <1>;
                        };
 
                        interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART0_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp1_dma 1>, <&blsp1_dma 0>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp1_dma 0>, <&blsp1_dma 1>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_uart0_default>;
                        status = "disabled";
                        interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp1_dma 3>, <&blsp1_dma 2>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp1_dma 2>, <&blsp1_dma 3>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_uart1_default>;
                        status = "disabled";
                        interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp1_dma 5>, <&blsp1_dma 4>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_uart2_default>;
                        status = "okay";
                        interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp1_dma 7>, <&blsp1_dma 6>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_uart3_default>;
                        status = "disabled";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b5000 0x600>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_i2c0_default>;
                        #address-cells = <1>;
                        compatible = "qcom,spi-qup-v2.2.1";
                        reg = <0x078b5000 0x600>;
                        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP0_SPI_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP0_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_spi0_default>;
                        #address-cells = <1>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b6000 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_i2c1_default>;
                        #address-cells = <1>;
                        compatible = "qcom,spi-qup-v2.2.1";
                        reg = <0x078b6000 0x600>;
                        interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_spi1_default>;
                        #address-cells = <1>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b7000 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_i2c2_default>;
                        #address-cells = <1>;
                        compatible = "qcom,spi-qup-v2.2.1";
                        reg = <0x078b7000 0x600>;
                        interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_spi2_default>;
                        #address-cells = <1>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b8000 0x600>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_i2c3_default>;
                        #address-cells = <1>;
                        compatible = "qcom,spi-qup-v2.2.1";
                        reg = <0x078b8000 0x600>;
                        interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_spi3_default>;
                        #address-cells = <1>;
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x078b9000 0x600>;
                        interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_i2c4_default>;
                        #address-cells = <1>;
                        compatible = "qcom,spi-qup-v2.2.1";
                        reg = <0x078b9000 0x600>;
                        interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP1_AHB_CLK>,
-                                <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp1_spi4_default>;
                        #address-cells = <1>;
                        interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&gcc GCC_BLSP2_UART0_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
                        clock-names = "core", "iface";
-                       dmas = <&blsp2_dma 1>, <&blsp2_dma 0>;
-                       dma-names = "rx", "tx";
+                       dmas = <&blsp2_dma 0>, <&blsp2_dma 1>;
+                       dma-names = "tx", "rx";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp2_uart0_default>;
                        status = "disabled";
                        compatible = "qcom,i2c-qup-v2.2.1";
                        reg = <0x07af5000 0x600>;
                        interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                <&gcc GCC_BLSP2_QUP0_I2C_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP0_I2C_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp2_i2c0_default>;
                        #address-cells = <1>;
                        compatible = "qcom,spi-qup-v2.2.1";
                        reg = <0x07af5000 0x600>;
                        interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&gcc GCC_BLSP2_AHB_CLK>,
-                                <&gcc GCC_BLSP2_QUP0_SPI_APPS_CLK>;
-                       clock-names = "iface", "core";
+                       clocks = <&gcc GCC_BLSP2_QUP0_SPI_APPS_CLK>,
+                                <&gcc GCC_BLSP2_AHB_CLK>;
+                       clock-names = "core", "iface";
                        pinctrl-names = "default";
                        pinctrl-0 = <&blsp2_spi0_default>;
                        #address-cells = <1>;
index 845eb7a..0e63f70 100644 (file)
@@ -29,7 +29,7 @@
        };
 
        /* Fixed crystal oscillator dedicated to MCP2518FD */
-       clk40M: can_clock {
+       clk40M: can-clock {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <40000000>;
index 8756c2b..ba547ca 100644 (file)
 
                vin-supply = <&vreg_3p3>;
        };
+
+       mtl_rx_setup: rx-queues-config {
+               snps,rx-queues-to-use = <1>;
+               snps,rx-sched-sp;
+
+               queue0 {
+                       snps,dcb-algorithm;
+                       snps,map-to-dma-channel = <0x0>;
+                       snps,route-up;
+                       snps,priority = <0x1>;
+               };
+       };
+
+       mtl_tx_setup: tx-queues-config {
+               snps,tx-queues-to-use = <1>;
+               snps,tx-sched-wrr;
+
+               queue0 {
+                       snps,weight = <0x10>;
+                       snps,dcb-algorithm;
+                       snps,priority = <0x0>;
+               };
+       };
 };
 
 &apps_rsc {
        };
 };
 
+&ethernet {
+       status = "okay";
+
+       snps,reset-gpio = <&tlmm 79 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       snps,reset-delays-us = <0 11000 70000>;
+
+       snps,ptp-ref-clk-rate = <250000000>;
+       snps,ptp-req-clk-rate = <96000000>;
+
+       snps,mtl-rx-config = <&mtl_rx_setup>;
+       snps,mtl-tx-config = <&mtl_tx_setup>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&ethernet_defaults>;
+
+       phy-handle = <&rgmii_phy>;
+       phy-mode = "rgmii";
+       max-speed = <1000>;
+
+       mdio {
+               #address-cells = <0x1>;
+               #size-cells = <0x0>;
+
+               compatible = "snps,dwmac-mdio";
+
+               /* Micrel KSZ9031RNZ PHY */
+               rgmii_phy: phy@7 {
+                       reg = <0x7>;
+
+                       interrupt-parent = <&tlmm>;
+                       interrupts-extended = <&tlmm 124 IRQ_TYPE_EDGE_FALLING>; /* phy intr */
+                       device_type = "ethernet-phy";
+                       compatible = "ethernet-phy-ieee802.3-c22";
+               };
+       };
+};
+
 &qupv3_id_1 {
        status = "okay";
 };
        firmware-name = "qcom/sa8155p/cdsp.mdt";
 };
 
+&sdhc_2 {
+       status = "okay";
+
+       cd-gpios = <&tlmm 4 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+       vqmmc-supply = <&vreg_l13c_2p96>; /* IO line power */
+       vmmc-supply = <&vreg_l17a_2p96>;  /* Card power line */
+       bus-width = <4>;
+       no-sdio;
+       no-emmc;
+};
+
 &uart2 {
        status = "okay";
 };
        vdda-pll-supply = <&vdda_usb_ss_dp_core_1>;
 };
 
+&pcie0 {
+       status = "okay";
+};
+
+&pcie0_phy {
+       status = "okay";
+       vdda-phy-supply = <&vreg_l18c_0p88>;
+       vdda-pll-supply = <&vreg_l8c_1p2>;
+};
+
+&pcie1_phy {
+       vdda-phy-supply = <&vreg_l18c_0p88>;
+       vdda-pll-supply = <&vreg_l8c_1p2>;
+};
+
 &tlmm {
        gpio-reserved-ranges = <0 4>;
 
+       sdc2_on: sdc2_on {
+               clk {
+                       pins = "sdc2_clk";
+                       bias-disable;           /* No pull */
+                       drive-strength = <16>;  /* 16 MA */
+               };
+
+               cmd {
+                       pins = "sdc2_cmd";
+                       bias-pull-up;           /* pull up */
+                       drive-strength = <16>;  /* 16 MA */
+               };
+
+               data {
+                       pins = "sdc2_data";
+                       bias-pull-up;           /* pull up */
+                       drive-strength = <16>;  /* 16 MA */
+               };
+
+               sd-cd {
+                       pins = "gpio96";
+                       function = "gpio";
+                       bias-pull-up;           /* pull up */
+                       drive-strength = <2>;   /* 2 MA */
+               };
+       };
+
+       sdc2_off: sdc2_off {
+               clk {
+                       pins = "sdc2_clk";
+                       bias-disable;           /* No pull */
+                       drive-strength = <2>;   /* 2 MA */
+               };
+
+               cmd {
+                       pins = "sdc2_cmd";
+                       bias-pull-up;           /* pull up */
+                       drive-strength = <2>;   /* 2 MA */
+               };
+
+               data {
+                       pins = "sdc2_data";
+                       bias-pull-up;           /* pull up */
+                       drive-strength = <2>;   /* 2 MA */
+               };
+
+               sd-cd {
+                       pins = "gpio96";
+                       function = "gpio";
+                       bias-pull-up;           /* pull up */
+                       drive-strength = <2>;   /* 2 MA */
+               };
+       };
+
        usb2phy_ac_en1_default: usb2phy_ac_en1_default {
                mux {
                        pins = "gpio113";
                        drive-strength = <2>;
                };
        };
+
+       ethernet_defaults: ethernet-defaults {
+               mdc {
+                       pins = "gpio7";
+                       function = "rgmii";
+                       bias-pull-up;
+               };
+
+               mdio {
+                       pins = "gpio59";
+                       function = "rgmii";
+                       bias-pull-up;
+               };
+
+               rgmii-rx {
+                       pins = "gpio117", "gpio118", "gpio119", "gpio120", "gpio115", "gpio116";
+                       function = "rgmii";
+                       bias-disable;
+                       drive-strength = <2>;
+               };
+
+               rgmii-tx {
+                       pins = "gpio122", "gpio4", "gpio5", "gpio6", "gpio114", "gpio121";
+                       function = "rgmii";
+                       bias-pull-up;
+                       drive-strength = <16>;
+               };
+
+               phy-intr {
+                       pins = "gpio124";
+                       function = "emac_phy";
+                       bias-disable;
+                       drive-strength = <8>;
+               };
+
+               pps {
+                       pins = "gpio81";
+                       function = "emac_pps";
+                       bias-disable;
+                       drive-strength = <8>;
+               };
+
+               phy-reset {
+                       pins = "gpio79";
+                       function = "gpio";
+                       bias-pull-up;
+                       drive-strength = <16>;
+               };
+       };
 };
index c81805e..8ac1f1e 100644 (file)
@@ -5,15 +5,10 @@
  * Copyright 2020 Google LLC.
  */
 
-#include "sc7180.dtsi"
-
-ap_ec_spi: &spi6 {};
-ap_h1_spi: &spi0 {};
-
 #include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
-/* Deleted nodes from trogdor.dtsi */
+/* Deleted nodes from sc7180-trogdor.dtsi */
 
 /delete-node/ &alc5682;
 /delete-node/ &pp3300_codec;
@@ -111,10 +106,6 @@ ap_ts_pen_1v8: &i2c4 {
        };
 };
 
-&i2c7 {
-       status = "disabled";
-};
-
 &i2c9 {
        status = "disabled";
 };
index 7003298..d9e905e 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-homestar.dtsi"
 
index e92e2e9..242c178 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-homestar.dtsi"
 
index 0de0c97..66dd870 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
 #include "sc7180-trogdor-homestar.dtsi"
 
index bff2b55..9b3e3d1 100644 (file)
@@ -5,9 +5,6 @@
  * Copyright 2021 Google LLC.
  */
 
-ap_ec_spi: &spi6 {};
-ap_h1_spi: &spi0 {};
-
 #include "sc7180-trogdor.dtsi"
 
 / {
@@ -88,10 +85,6 @@ ap_h1_spi: &spi0 {};
        };
 };
 
-&ap_tp_i2c {
-       status = "disabled";
-};
-
 ap_ts_pen_1v8: &i2c4 {
        status = "okay";
        clock-frequency = <400000>;
index f360ff2..235cda2 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
index 4e35aec..913b5fc 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
@@ -20,7 +20,7 @@
 /delete-node/&ap_ts;
 
 &panel {
-       compatible = "innolux,n116bca-ea1", "innolux,n116bge";
+       compatible = "edp-panel";
 };
 
 &sdhc_2 {
index 42b4bbc..d42dcd4 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
index dc47842..15d77dc 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
index b142006..bfbf26f 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 
index e16ba7b..eb20157 100644 (file)
        compatible = "google,lazor-rev1-sku0", "google,lazor-rev2-sku0", "qcom,sc7180";
 };
 
-&ap_sar_sensor {
-       status = "okay";
-};
-
 &ap_sar_sensor_i2c {
        status = "okay";
 };
index 5974079..d45a59a 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 
index 18ef9da..6ff81c1 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-lite.dtsi"
index c5c9fef..e58e36e 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
                "qcom,sc7180";
 };
 
-&ap_sar_sensor {
-       status = "okay";
-};
-
 &ap_sar_sensor_i2c {
        status = "okay";
 };
index 7adcedb..76c83f8 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-lite.dtsi"
index 7f5c015..960f7b7 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-lite.dtsi"
index 344b57c..38027f1 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-trogdor-lte-sku.dtsi"
        compatible = "google,lazor-sku0", "qcom,sc7180";
 };
 
-&ap_sar_sensor {
-       status = "okay";
-};
-
 &ap_sar_sensor_i2c {
        status = "okay";
 };
index 83f6a4e..56dd222 100644 (file)
@@ -7,7 +7,7 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
+#include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-parade-ps8640.dtsi"
 #include "sc7180-trogdor-lazor.dtsi"
 #include "sc7180-lite.dtsi"
index 69666f9..fe2369c 100644 (file)
@@ -5,9 +5,6 @@
  * Copyright 2020 Google LLC.
  */
 
-ap_ec_spi: &spi6 {};
-ap_h1_spi: &spi0 {};
-
 #include "sc7180-trogdor.dtsi"
 
 &ap_sar_sensor {
@@ -19,6 +16,10 @@ ap_h1_spi: &spi0 {};
        semtech,avg-pos-strength = <64>;
 };
 
+&ap_tp_i2c {
+       status = "okay";
+};
+
 /*
  * Lazor is stuffed with a 47k NTC as charger thermistor which currently is
  * not supported by the PM6150 ADC driver. Disable the charger thermal zone
index e47c74e..3df4920 100644 (file)
@@ -5,11 +5,6 @@
  * Copyright 2020 Google LLC.
  */
 
-#include "sc7180.dtsi"
-
-ap_ec_spi: &spi6 {};
-ap_h1_spi: &spi0 {};
-
 #include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
@@ -36,6 +31,10 @@ ap_h1_spi: &spi0 {};
        realtek,dmic-clk-driving-high;
 };
 
+&ap_tp_i2c {
+       status = "okay";
+};
+
 &cpu6_alert0 {
        temperature = <60000>;
 };
index 457c254..352827e 100644 (file)
@@ -7,11 +7,6 @@
 
 /dts-v1/;
 
-#include "sc7180.dtsi"
-
-ap_ec_spi: &spi6 {};
-ap_h1_spi: &spi0 {};
-
 #include "sc7180-trogdor.dtsi"
 #include "sc7180-trogdor-ti-sn65dsi86.dtsi"
 
@@ -20,6 +15,10 @@ ap_h1_spi: &spi0 {};
        compatible = "google,trogdor", "qcom,sc7180";
 };
 
+&ap_tp_i2c {
+       status = "okay";
+};
+
 ap_ts_pen_1v8: &i2c4 {
        status = "okay";
        clock-frequency = <400000>;
index 732e118..e55dbaa 100644 (file)
@@ -11,7 +11,8 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include <dt-bindings/sound/sc7180-lpass.h>
 
-/* PMICs depend on spmi_bus label and so must come after SoC */
+#include "sc7180.dtsi"
+/* PMICs depend on spmi_bus label and so must come after sc7180.dtsi */
 #include "pm6150.dtsi"
 #include "pm6150l.dtsi"
 
        };
 };
 
-&ap_ec_spi {
+ap_ec_spi: &spi6 {
        status = "okay";
        cros_ec: ec@0 {
                compatible = "google,cros-ec-spi";
        };
 };
 
-&ap_h1_spi {
+ap_h1_spi: &spi0 {
        status = "okay";
        cr50: tpm@0 {
                compatible = "google,cr50";
@@ -722,13 +723,11 @@ ap_sar_sensor_i2c: &i2c5 {
                vdd-supply = <&pp3300_a>;
                svdd-supply = <&pp1800_prox>;
 
-               status = "disabled";
                label = "proximity-wifi";
        };
 };
 
 ap_tp_i2c: &i2c7 {
-       status = "okay";
        clock-frequency = <400000>;
 
        trackpad: trackpad@15 {
index e1c46b8..82fa009 100644 (file)
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
-               ipa_virt: interconnect@1e00000 {
-                       compatible = "qcom,sc7180-ipa-virt";
-                       reg = <0 0x01e00000 0 0x1000>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
-
                ipa: ipa@1e40000 {
                        compatible = "qcom,sc7180-ipa";
 
                                };
                        };
 
-                       apps_bcm_voter: bcm_voter {
+                       apps_bcm_voter: bcm-voter {
                                compatible = "qcom,bcm-voter";
                        };
                };
similarity index 88%
rename from arch/arm64/boot/dts/qcom/sc7280-crd.dts
rename to arch/arm64/boot/dts/qcom/sc7280-crd-r3.dts
index e2efbdd..344338a 100644 (file)
 #include "sc7280-idp-ec-h1.dtsi"
 
 / {
-       model = "Qualcomm Technologies, Inc. sc7280 CRD platform";
-       compatible = "qcom,sc7280-crd", "google,hoglin", "qcom,sc7280";
+       model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev3 - 4)";
+       compatible = "qcom,sc7280-crd",
+                    "google,hoglin-rev3", "google,hoglin-rev4",
+                    "google,piglin-rev3", "google,piglin-rev4",
+                    "qcom,sc7280";
 
        aliases {
                serial0 = &uart5;
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-crd.dts
new file mode 100644 (file)
index 0000000..a4ac33c
--- /dev/null
@@ -0,0 +1,365 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * sc7280 CRD 3+ board device tree source
+ *
+ * Copyright 2022 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7280-herobrine.dtsi"
+
+/ {
+       model = "Qualcomm Technologies, Inc. sc7280 CRD platform (rev5+)";
+       compatible = "google,hoglin", "qcom,sc7280";
+
+       /* FIXED REGULATORS */
+
+       /*
+        * On most herobrine boards PPVAR_SYS directly provides VREG_EDP_BL.
+        * However, on CRD there's an extra regulator in the way. Since this
+        * is expected to be uncommon, we'll leave the "vreg_edp_bl" label
+        * in the baseboard herobrine.dtsi point at "ppvar_sys" and then
+        * make a "_crd" specific version here.
+        */
+       vreg_edp_bl_crd: vreg-edp-bl-crd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_edp_bl_crd";
+
+               gpio = <&pm8350c_gpios 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-names = "default";
+               pinctrl-0 = <&edp_bl_reg_en>;
+
+               vin-supply = <&ppvar_sys>;
+       };
+};
+
+/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
+
+&apps_rsc {
+       pmg1110-regulators {
+               compatible = "qcom,pmg1110-rpmh-regulators";
+               qcom,pmic-id = "k";
+
+               vreg_s1k_1p0: smps1 {
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1170000>;
+               };
+       };
+};
+
+ap_tp_i2c: &i2c0 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       trackpad: trackpad@15 {
+               compatible = "hid-over-i2c";
+               reg = <0x15>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tp_int_odl>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+
+               post-power-on-delay-ms = <20>;
+               hid-descr-addr = <0x0001>;
+               vdd-supply = <&pp3300_z1>;
+
+               wakeup-source;
+       };
+};
+
+&ap_sar_sensor_i2c {
+       status = "okay";
+};
+
+&ap_sar_sensor0 {
+       status = "okay";
+};
+
+&ap_sar_sensor1 {
+       status = "okay";
+};
+
+ap_ts_pen_1v8: &i2c13 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       ap_ts: touchscreen@5c {
+               compatible = "hid-over-i2c";
+               reg = <0x5c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ts_int_conn>, <&ts_rst_conn>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <55 IRQ_TYPE_LEVEL_LOW>;
+
+               post-power-on-delay-ms = <500>;
+               hid-descr-addr = <0x0000>;
+
+               vdd-supply = <&pp3300_left_in_mlb>;
+       };
+};
+
+&mdss_edp {
+       status = "okay";
+};
+
+&mdss_edp_phy {
+       status = "okay";
+};
+
+/* For nvme */
+&pcie1 {
+       status = "okay";
+};
+
+/* For nvme */
+&pcie1_phy {
+       status = "okay";
+};
+
+&pm8350c_pwm_backlight {
+       power-supply = <&vreg_edp_bl_crd>;
+};
+
+/* For eMMC */
+&sdhc_1 {
+       status = "okay";
+};
+
+/* For SD Card */
+&sdhc_2 {
+       status = "okay";
+};
+
+/* PINCTRL - BOARD-SPECIFIC */
+
+/*
+ * Methodology for gpio-line-names:
+ * - If a pin goes to CRD board and is named it gets that name.
+ * - If a pin goes to CRD board and is not named, it gets no name.
+ * - If a pin is totally internal to Qcard then it gets Qcard name.
+ * - If a pin is not hooked up on Qcard, it gets no name.
+ */
+
+&pm8350c_gpios {
+       gpio-line-names = "FLASH_STROBE_1",             /* 1 */
+                         "AP_SUSPEND",
+                         "PM8008_1_RST_N",
+                         "",
+                         "",
+                         "EDP_BL_REG_EN",
+                         "PMIC_EDP_BL_EN",
+                         "PMIC_EDP_BL_PWM",
+                         "";
+
+       edp_bl_reg_en: edp-bl-reg-en {
+               pins = "gpio6";
+               function = "normal";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+};
+
+&tlmm {
+       gpio-line-names = "AP_TP_I2C_SDA",              /* 0 */
+                         "AP_TP_I2C_SCL",
+                         "PCIE1_RESET_N",
+                         "PCIE1_WAKE_N",
+                         "APPS_I2C_SDA",
+                         "APPS_I2C_SCL",
+                         "",
+                         "TPAD_INT_N",
+                         "",
+                         "",
+
+                         "GNSS_L1_EN",                 /* 10 */
+                         "GNSS_L5_EN",
+                         "QSPI_DATA_0",
+                         "QSPI_DATA_1",
+                         "QSPI_CLK",
+                         "QSPI_CS_N_1",
+                         /*
+                          * AP_FLASH_WP is crossystem ABI. Schematics call it
+                          * BIOS_FLASH_WP_L (the '_L' suffix is misleading, the
+                          * signal is active high).
+                          */
+                         "AP_FLASH_WP",
+                         "",
+                         "AP_EC_INT_N",
+                         "",
+
+                         "CAM0_RST_N",                 /* 20 */
+                         "CAM1_RST_N",
+                         "SM_DBG_UART_TX",
+                         "SM_DBG_UART_RX",
+                         "",
+                         "PM8008_IRQ_1",
+                         "HOST2WLAN_SOL",
+                         "WLAN2HOST_SOL",
+                         "MOS_BT_UART_CTS",
+                         "MOS_BT_UART_RFR",
+
+                         "MOS_BT_UART_TX",             /* 30 */
+                         "MOS_BT_UART_RX",
+                         "",
+                         "HUB_RST",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+
+                         "EC_SPI_MISO_GPIO40",         /* 40 */
+                         "EC_SPI_MOSI_GPIO41",
+                         "EC_SPI_CLK_GPIO42",
+                         "EC_SPI_CS_GPIO43",
+                         "",
+                         "EARLY_EUD_EN",
+                         "",
+                         "DP_HOT_PLUG_DETECT",
+                         "AP_BRD_ID_0",
+                         "AP_BRD_ID_1",
+
+                         "AP_BRD_ID_2",                /* 50 */
+                         "NVME_PWR_REG_EN",
+                         "TS_I2C_SDA_CONN",
+                         "TS_I2C_CLK_CONN",
+                         "TS_RST_CONN",
+                         "TS_INT_CONN",
+                         "AP_I2C_TPM_SDA",
+                         "AP_I2C_TPM_SCL",
+                         "",
+                         "",
+
+                         "EDP_HOT_PLUG_DET_N",         /* 60 */
+                         "",
+                         "",
+                         "AMP_EN",
+                         "CAM0_MCLK_GPIO_64",
+                         "CAM1_MCLK_GPIO_65",
+                         "",
+                         "",
+                         "",
+                         "CCI_I2C_SDA0",
+
+                         "CCI_I2C_SCL0",               /* 70 */
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "PCIE1_CLK_REQ_N",
+
+                         "EN_PP3300_DX_EDP",           /* 80 */
+                         "US_EURO_HS_SEL",
+                         "FORCED_USB_BOOT",
+                         "WCD_RESET_N",
+                         "MOS_WLAN_EN",
+                         "MOS_BT_EN",
+                         "MOS_SW_CTRL",
+                         "MOS_PCIE0_RST",
+                         "MOS_PCIE0_CLKREQ_N",
+                         "MOS_PCIE0_WAKE_N",
+
+                         "MOS_LAA_AS_EN",              /* 90 */
+                         "SD_CARD_DET_CONN",
+                         "",
+                         "",
+                         "MOS_BT_WLAN_SLIMBUS_CLK",
+                         "MOS_BT_WLAN_SLIMBUS_DAT0",
+                         "",
+                         "",
+                         "",
+                         "",
+
+                         "",                           /* 100 */
+                         "",
+                         "",
+                         "",
+                         "H1_AP_INT_N",
+                         "",
+                         "AMP_BCLK",
+                         "AMP_DIN",
+                         "AMP_LRCLK",
+                         "UIM1_DATA_GPIO_109",
+
+                         "UIM1_CLK_GPIO_110",          /* 110 */
+                         "UIM1_RESET_GPIO_111",
+                         "",
+                         "UIM1_DATA",
+                         "UIM1_CLK",
+                         "UIM1_RESET",
+                         "UIM1_PRESENT",
+                         "SDM_RFFE0_CLK",
+                         "SDM_RFFE0_DATA",
+                         "",
+
+                         "SDM_RFFE1_DATA",             /* 120 */
+                         "SC_GPIO_121",
+                         "FASTBOOT_SEL_1",
+                         "SC_GPIO_123",
+                         "FASTBOOT_SEL_2",
+                         "SM_RFFE4_CLK_GRFC_8",
+                         "SM_RFFE4_DATA_GRFC_9",
+                         "WLAN_COEX_UART1_RX",
+                         "WLAN_COEX_UART1_TX",
+                         "",
+
+                         "",                           /* 130 */
+                         "",
+                         "",
+                         "SDR_QLINK_REQ",
+                         "SDR_QLINK_EN",
+                         "QLINK0_WMSS_RESET_N",
+                         "SMR526_QLINK1_REQ",
+                         "SMR526_QLINK1_EN",
+                         "SMR526_QLINK1_WMSS_RESET_N",
+                         "",
+
+                         "SAR1_INT_N",                 /* 140 */
+                         "SAR0_INT_N",
+                         "",
+                         "",
+                         "WCD_SWR_TX_CLK",
+                         "WCD_SWR_TX_DATA0",
+                         "WCD_SWR_TX_DATA1",
+                         "WCD_SWR_RX_CLK",
+                         "WCD_SWR_RX_DATA0",
+                         "WCD_SWR_RX_DATA1",
+
+                         "DMIC01_CLK",                 /* 150 */
+                         "DMIC01_DATA",
+                         "DMIC23_CLK",
+                         "DMIC23_DATA",
+                         "",
+                         "",
+                         "EC_IN_RW_N",
+                         "EN_PP3300_HUB",
+                         "WCD_SWR_TX_DATA2",
+                         "",
+
+                         "",                           /* 160 */
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+
+                         "",                           /* 170 */
+                         "MOS_BLE_UART_TX",
+                         "MOS_BLE_UART_RX",
+                         "",
+                         "",
+                         "";
+};
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-herobrine-r0.dts
deleted file mode 100644 (file)
index 1779d96..0000000
+++ /dev/null
@@ -1,1352 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
-/*
- * Google Herobrine board device tree source
- *
- * Copyright 2021 Google LLC.
- */
-
-/dts-v1/;
-
-#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
-#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
-#include <dt-bindings/input/gpio-keys.h>
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
-
-#include "sc7280.dtsi"
-
-/* PMICs depend on spmi_bus label and so must come after SoC */
-#include "pm7325.dtsi"
-#include "pm8350c.dtsi"
-#include "pmk8350.dtsi"
-
-#include "sc7280-chrome-common.dtsi"
-
-/ {
-       model = "Google Herobrine (rev0)";
-       compatible = "google,herobrine-rev0", "qcom,sc7280";
-};
-
-/ {
-       aliases {
-               serial0 = &uart5;
-               serial1 = &uart7;
-       };
-
-       chosen {
-               stdout-path = "serial0:115200n8";
-       };
-
-       /* FIXED REGULATORS - parents above children */
-
-       /* This is the top level supply and variable voltage */
-       ppvar_sys: ppvar-sys-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "ppvar_sys";
-               regulator-always-on;
-               regulator-boot-on;
-       };
-
-       /* This divides ppvar_sys by 2, so voltage is variable */
-       src_vph_pwr: src-vph-pwr-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "src_vph_pwr";
-
-               /* EC turns on with switchcap_on; always on for AP */
-               regulator-always-on;
-               regulator-boot-on;
-
-               vin-supply = <&ppvar_sys>;
-       };
-
-       pp5000_s3: pp5000-s3-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp5000_s3";
-
-               /* EC turns on with en_pp5000_s3; always on for AP */
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-
-               vin-supply = <&ppvar_sys>;
-       };
-
-       pp3300_z1: pp3300-z1-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp3300_z1";
-
-               /* EC turns on with en_pp3300_z1; always on for AP */
-               regulator-always-on;
-               regulator-boot-on;
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               vin-supply = <&ppvar_sys>;
-       };
-
-       pp3300_audio:
-       pp3300_codec: pp3300-codec-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp3300_codec";
-
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               gpio = <&tlmm 67 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&en_pp3300_codec>;
-
-               vin-supply = <&pp3300_z1>;
-       };
-
-       pp3300_cam:
-       pp3300_edp:
-       pp3300_ts: pp3300-edp-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp3300_edp";
-
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               gpio = <&tlmm 80 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&en_pp3300_dx_edp>;
-
-               vin-supply = <&pp3300_z1>;
-       };
-
-       pp3300_fp:
-       pp3300_fp_ls:
-       pp3300_mcu: pp3300-fp-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp3300_fp";
-
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               regulator-boot-on;
-               regulator-always-on;
-
-               /*
-                * WARNING: it is intentional that GPIO 42 isn't listed here.
-                * The userspace script for updating the fingerprint firmware
-                * needs to control the FP regulators during a FW update,
-                * hence the signal can't be owned by the kernel regulator.
-                */
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&en_fp_rails>;
-
-               vin-supply = <&pp3300_z1>;
-       };
-
-       pp3300_hub: pp3300-hub-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp3300_hub";
-
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               regulator-boot-on;
-               regulator-always-on;
-
-               gpio = <&tlmm 24 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&en_pp3300_hub>;
-
-               vin-supply = <&pp3300_z1>;
-       };
-
-       pp3300_tp: pp3300-tp-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp3300_tp";
-
-               regulator-min-microvolt = <3300000>;
-               regulator-max-microvolt = <3300000>;
-
-               /* AP turns on with PP1800_L18B_S0; always on for AP */
-               regulator-always-on;
-               regulator-boot-on;
-
-               vin-supply = <&pp3300_z1>;
-       };
-
-       pp2850_uf_cam: pp2850-uf-cam-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp2850_uf_cam";
-
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-
-               gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&uf_cam_en>;
-
-               vin-supply = <&pp3300_cam>;
-       };
-
-       pp2850_vcm_wf_cam: pp2850-vcm-wf-cam-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp2850_vcm_wf_cam";
-
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-
-               gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&wf_cam_en>;
-
-               vin-supply = <&pp3300_cam>;
-       };
-
-       pp2850_wf_cam: pp2850-wf-cam-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp2850_wf_cam";
-
-               regulator-min-microvolt = <2850000>;
-               regulator-max-microvolt = <2850000>;
-
-               gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               /*
-                * The pinconf can only be referenced once so we put it on the
-                * first regulator and comment it out here.
-                *
-                * pinctrl-names = "default";
-                * pinctrl-0 = <&wf_cam_en>;
-                */
-
-               vin-supply = <&pp3300_cam>;
-       };
-
-       pp1800_fp: pp1800-fp-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp1800_fp";
-
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-
-               regulator-boot-on;
-               regulator-always-on;
-
-               /*
-                * WARNING: it is intentional that GPIO 42 isn't listed here.
-                * The userspace script for updating the fingerprint firmware
-                * needs to control the FP regulators during a FW update,
-                * hence the signal can't be owned by the kernel regulator.
-                */
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&en_fp_rails>;
-
-               vin-supply = <&pp1800_l18b_s0>;
-               status = "disabled";
-       };
-
-       pp1800_uf_cam: pp1800-uf-cam-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp1800_uf_cam";
-
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-
-               gpio = <&tlmm 6 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               /*
-                * The pinconf can only be referenced once so we put it on the
-                * first regulator and comment it out here.
-                *
-                * pinctrl-names = "default";
-                * pinctrl-0 = <&uf_cam_en>;
-                */
-
-               vin-supply = <&pp1800_l19b>;
-       };
-
-       pp1800_wf_cam: pp1800-wf-cam-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp1800_wf_cam";
-
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-
-               gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               /*
-                * The pinconf can only be referenced once so we put it on the
-                * first regulator and comment it out here.
-                *
-                * pinctrl-names = "default";
-                * pinctrl-0 = <&wf_cam_en>;
-                */
-
-               vin-supply = <&pp1800_l19b>;
-       };
-
-       pp1200_wf_cam: pp1200-wf-cam-regulator {
-               compatible = "regulator-fixed";
-               regulator-name = "pp1200_wf_cam";
-
-               regulator-min-microvolt = <1200000>;
-               regulator-max-microvolt = <1200000>;
-
-               gpio = <&tlmm 7 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-               /*
-                * The pinconf can only be referenced once so we put it on the
-                * first regulator and comment it out here.
-                *
-                * pinctrl-names = "default";
-                * pinctrl-0 = <&wf_cam_en>;
-                */
-
-               vin-supply = <&pp1200_l6b>;
-       };
-
-       /* BOARD-SPECIFIC TOP LEVEL NODES */
-
-       gpio_keys: gpio-keys {
-               compatible = "gpio-keys";
-               status = "disabled";
-               pinctrl-names = "default";
-               pinctrl-0 = <&pen_pdct_l>;
-
-               pen_insert: pen-insert {
-                       label = "Pen Insert";
-
-                       /* Insert = low, eject = high */
-                       gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;
-                       linux,code = <SW_PEN_INSERTED>;
-                       linux,input-type = <EV_SW>;
-                       wakeup-event-action = <EV_ACT_DEASSERTED>;
-                       wakeup-source;
-               };
-       };
-
-       pwmleds {
-               compatible = "pwm-leds";
-               status = "disabled";
-               keyboard_backlight: keyboard-backlight {
-                       status = "disabled";
-                       label = "cros_ec::kbd_backlight";
-                       pwms = <&cros_ec_pwm 0>;
-                       max-brightness = <1023>;
-               };
-       };
-};
-
-&apps_rsc {
-       pm7325-regulators {
-               compatible = "qcom,pm7325-rpmh-regulators";
-               qcom,pmic-id = "b";
-
-               vdd19_pmu_pcie_i:
-               vdd19_pmu_rfa_i:
-               vreg_s1b_wlan:
-               vreg_s1b: smps1 {
-                       regulator-min-microvolt = <1856000>;
-                       regulator-max-microvolt = <2040000>;
-               };
-
-               vdd_pmu_aon_i:
-               vreg_s7b_wlan:
-               vreg_s7b: smps7 {
-                       regulator-min-microvolt = <535000>;
-                       regulator-max-microvolt = <1120000>;
-               };
-
-               vdd13_pmu_pcie_i:
-               vdd13_pmu_rfa_i:
-               vreg_s8b_wlan:
-               vreg_s8b: smps8 {
-                       regulator-min-microvolt = <1256000>;
-                       regulator-max-microvolt = <1500000>;
-               };
-
-               vdda_usb_ss_dp_core:
-               vreg_l1b: ldo1 {
-                       regulator-min-microvolt = <825000>;
-                       regulator-max-microvolt = <925000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vdda_usb_hs0_3p1:
-               vreg_l2b: ldo2 {
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <3544000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp1200_l6b:
-               vdd_ufs_1p2:
-               vdd_vref:
-               vdda_csi01_1p2:
-               vdda_csi23_1p2:
-               vdda_csi4_1p2:
-               vdda_dsi0_1p2:
-               vdda_pcie0_1p2:
-               vdda_pcie1_1p2:
-               vdda_usb_ss_dp_1p2:
-               vdda_qlink0_1p2_ck:
-               vdda_qlink1_1p2_ck:
-               vreg_l6b_1p2:
-               vreg_l6b: ldo6 {
-                       regulator-min-microvolt = <1120000>;
-                       regulator-max-microvolt = <1408000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp2950_l7b:
-               vreg_l7b: ldo7 {
-                       regulator-min-microvolt = <2960000>;
-                       regulator-max-microvolt = <2960000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               codec_vcc:
-               pp1800_l18b_s0:
-               pp1800_ts:
-               vdd1:
-               vddpx_0:
-               vddpx_3:
-               vddpx_7:
-               vreg_l18b: ldo18 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2000000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp1800_l19b:
-               vddpx_ts:
-               vddpx_wl4otp:
-               vreg_l19b: ldo19 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1800000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-       };
-
-       pm8350c-regulators {
-               compatible = "qcom,pm8350c-rpmh-regulators";
-               qcom,pmic-id = "c";
-
-               vreg_s1c: smps1 {
-                       regulator-min-microvolt = <2190000>;
-                       regulator-max-microvolt = <2210000>;
-               };
-
-               vddpx_1:
-               vreg_s9c: smps9 {
-                       regulator-min-microvolt = <1010000>;
-                       regulator-max-microvolt = <1170000>;
-               };
-
-               pp1800_l1c:
-               pp1800_pen:
-               vdd_a_gfx_cs_1p1:
-               vdd_a_cxo_1p8:
-               vdd_qfprom:
-               vdda_apc_cs_1p8:
-               vdda_qrefs_1p8:
-               vdda_turing_q6_cs_1p8:
-               vdda_usb_hs0_1p8:
-               vreg_l1c: ldo1 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <1980000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               dmic_vdd:
-               pp1800_alc5682:
-               pp1800_l2c:
-               pp1800_vreg_alc5682:
-               vreg_l2c: ldo2 {
-                       regulator-min-microvolt = <1620000>;
-                       regulator-max-microvolt = <1980000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp3300_sar:
-               pp3300_sensor:
-               vreg_l3c: ldo3 {
-                       regulator-min-microvolt = <2800000>;
-                       regulator-max-microvolt = <3540000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               ppvar_uim1:
-               vddpx_5:
-               vreg_l4c: ldo4 {
-                       regulator-min-microvolt = <1620000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp2950_l5c:
-               uim_vcc:
-               vddpx_6:
-               vreg_l5c: ldo5 {
-                       regulator-min-microvolt = <1620000>;
-                       regulator-max-microvolt = <3300000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               ppvar_l6c:
-               vddpx_2:
-               vreg_l6c: ldo6 {
-                       regulator-min-microvolt = <1800000>;
-                       regulator-max-microvolt = <2950000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_l7c: ldo7 {
-                       regulator-min-microvolt = <3000000>;
-                       regulator-max-microvolt = <3544000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp1800_prox:
-               pp1800_sar:
-               vreg_l8c: ldo8 {
-                       regulator-min-microvolt = <1620000>;
-                       regulator-max-microvolt = <2000000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp2950_l9c:
-               vreg_l9c: ldo9 {
-                       regulator-min-microvolt = <2960000>;
-                       regulator-max-microvolt = <2960000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vdd_a_gnss_0p9:
-               vdd_ufs_core:
-               vdd_usb_hs0_core:
-               vdd_vref_0p9:
-               vdda_csi01_0p9:
-               vdda_csi23_0p9:
-               vdda_csi4_0p9:
-               vdda_dsi0_pll_0p9:
-               vdda_dsi0_0p9:
-               vdda_pcie0_core:
-               vdda_pcie1_core:
-               vdda_qlink0_0p9:
-               vdda_qlink1_0p9:
-               vdda_qlink0_0p9_ck:
-               vdda_qlink1_0p9_ck:
-               vdda_qrefs_0p875:
-               vreg_l10c_0p8:
-               vreg_l10c: ldo10 {
-                       regulator-min-microvolt = <720000>;
-                       regulator-max-microvolt = <1050000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp2800_l11c:
-               vreg_l11c: ldo11 {
-                       regulator-min-microvolt = <2800000>;
-                       regulator-max-microvolt = <3544000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp1800_l12c:
-               vreg_l12c: ldo12 {
-                       regulator-min-microvolt = <1650000>;
-                       regulator-max-microvolt = <2000000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               pp3300_l13c:
-               vreg_l13c: ldo13 {
-                       regulator-min-microvolt = <2700000>;
-                       regulator-max-microvolt = <3544000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-               };
-
-               vreg_bob: bob {
-                       regulator-min-microvolt = <3008000>;
-                       regulator-max-microvolt = <3960000>;
-                       regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
-               };
-       };
-};
-
-ap_tp_i2c: &i2c1 {
-       status = "okay";
-       clock-frequency = <400000>;
-
-       trackpad: trackpad@15 {
-               compatible = "elan,ekth3000";
-               reg = <0x15>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&tp_int_odl>;
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <102 IRQ_TYPE_EDGE_FALLING>;
-
-               vcc-supply = <&pp3300_z1>;
-
-               wakeup-source;
-       };
-};
-
-ap_h1_i2c: &i2c12 {
-       status = "okay";
-       clock-frequency = <400000>;
-
-       tpm@50 {
-               compatible = "google,cr50";
-               reg = <0x50>;
-
-               pinctrl-names = "default";
-               pinctrl-0 = <&h1_ap_int_odl>;
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <54 IRQ_TYPE_EDGE_RISING>;
-       };
-};
-
-ap_ts_pen: &i2c13 {
-       status = "okay";
-       clock-frequency = <400000>;
-
-       ap_ts: touchscreen@10 {
-               compatible = "hid-over-i2c";
-               reg = <0x10>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&ts_int_l>, <&ts_reset_l>;
-
-               interrupt-parent = <&tlmm>;
-               interrupts = <81 IRQ_TYPE_LEVEL_LOW>;
-
-               post-power-on-delay-ms = <20>;
-               hid-descr-addr = <0x0001>;
-
-               vdd-supply = <&pp3300_ts>;
-       };
-};
-
-&pm7325_gpios {
-       status = "disabled"; /* No GPIOs are connected */
-};
-
-&pmk8350_gpios {
-       status = "disabled"; /* No GPIOs are connected */
-};
-
-&pmk8350_rtc {
-       status = "disabled";
-};
-
-&pmk8350_vadc {
-       pmk8350_die_temp {
-               reg = <PMK8350_ADC7_DIE_TEMP>;
-               label = "pmk8350_die_temp";
-               qcom,pre-scaling = <1 1>;
-       };
-
-       pmr735a_die_temp {
-               reg = <PMR735A_ADC7_DIE_TEMP>;
-               label = "pmr735a_die_temp";
-               qcom,pre-scaling = <1 1>;
-       };
-};
-
-&qfprom {
-       vcc-supply = <&vdd_qfprom>;
-};
-
-&qupv3_id_0 {
-       status = "okay";
-};
-
-&qupv3_id_1 {
-       status = "okay";
-};
-
-&sdhc_1 {
-       status = "okay";
-
-       vmmc-supply = <&pp2950_l7b>;
-       vqmmc-supply = <&pp1800_l19b>;
-};
-
-&sdhc_2 {
-       status = "okay";
-
-       pinctrl-0 = <&sdc2_clk>, <&sdc2_cmd>, <&sdc2_data>, <&sd_cd>;
-       pinctrl-1 = <&sdc2_clk_sleep>, <&sdc2_cmd_sleep>, <&sdc2_data_sleep>, <&sd_cd>;
-       vmmc-supply = <&pp2950_l9c>;
-       vqmmc-supply = <&ppvar_l6c>;
-
-       cd-gpios = <&tlmm 91 GPIO_ACTIVE_LOW>;
-};
-
-ap_ec_spi: &spi8 {
-       status = "okay";
-
-       pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs_gpio_init_high>, <&qup_spi8_cs_gpio>;
-       cs-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
-
-       cros_ec: ec@0 {
-               compatible = "google,cros-ec-spi";
-               reg = <0>;
-               interrupt-parent = <&tlmm>;
-               interrupts = <142 IRQ_TYPE_LEVEL_LOW>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&ap_ec_int_l>;
-               spi-max-frequency = <3000000>;
-
-               cros_ec_pwm: pwm {
-                       compatible = "google,cros-ec-pwm";
-                       #pwm-cells = <1>;
-               };
-
-               i2c_tunnel: i2c-tunnel {
-                       compatible = "google,cros-ec-i2c-tunnel";
-                       google,remote-bus = <0>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-               };
-
-               typec {
-                       compatible = "google,cros-ec-typec";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       usb_c0: connector@0 {
-                               compatible = "usb-c-connector";
-                               reg = <0>;
-                               label = "left";
-                               power-role = "dual";
-                               data-role = "host";
-                               try-power-role = "source";
-                       };
-
-                       usb_c1: connector@1 {
-                               compatible = "usb-c-connector";
-                               reg = <1>;
-                               label = "right";
-                               power-role = "dual";
-                               data-role = "host";
-                               try-power-role = "source";
-                       };
-               };
-       };
-};
-
-#include <arm/cros-ec-keyboard.dtsi>
-#include <arm/cros-ec-sbs.dtsi>
-
-&keyboard_controller {
-       function-row-physmap = <
-               MATRIX_KEY(0x00, 0x02, 0)       /* T1 */
-               MATRIX_KEY(0x03, 0x02, 0)       /* T2 */
-               MATRIX_KEY(0x02, 0x02, 0)       /* T3 */
-               MATRIX_KEY(0x01, 0x02, 0)       /* T4 */
-               MATRIX_KEY(0x03, 0x04, 0)       /* T5 */
-               MATRIX_KEY(0x02, 0x04, 0)       /* T6 */
-               MATRIX_KEY(0x01, 0x04, 0)       /* T7 */
-               MATRIX_KEY(0x02, 0x09, 0)       /* T8 */
-               MATRIX_KEY(0x01, 0x09, 0)       /* T9 */
-               MATRIX_KEY(0x00, 0x04, 0)       /* T10 */
-       >;
-       linux,keymap = <
-               MATRIX_KEY(0x00, 0x02, KEY_BACK)
-               MATRIX_KEY(0x03, 0x02, KEY_REFRESH)
-               MATRIX_KEY(0x02, 0x02, KEY_ZOOM)
-               MATRIX_KEY(0x01, 0x02, KEY_SCALE)
-               MATRIX_KEY(0x03, 0x04, KEY_SYSRQ)
-               MATRIX_KEY(0x02, 0x04, KEY_BRIGHTNESSDOWN)
-               MATRIX_KEY(0x01, 0x04, KEY_BRIGHTNESSUP)
-               MATRIX_KEY(0x02, 0x09, KEY_MUTE)
-               MATRIX_KEY(0x01, 0x09, KEY_VOLUMEDOWN)
-               MATRIX_KEY(0x00, 0x04, KEY_VOLUMEUP)
-
-               CROS_STD_MAIN_KEYMAP
-       >;
-};
-
-&uart5 {
-       compatible = "qcom,geni-debug-uart";
-       status = "okay";
-};
-
-&uart7 {
-       status = "okay";
-};
-
-&usb_1 {
-       status = "okay";
-};
-
-&usb_1_dwc3 {
-       dr_mode = "host";
-};
-
-&usb_1_hsphy {
-       status = "okay";
-
-       vdda-pll-supply = <&vdd_usb_hs0_core>;
-       vdda33-supply = <&vdda_usb_hs0_3p1>;
-       vdda18-supply = <&vdda_usb_hs0_1p8>;
-};
-
-&usb_1_qmpphy {
-       status = "okay";
-
-       vdda-phy-supply = <&vdda_usb_ss_dp_1p2>;
-       vdda-pll-supply = <&vdda_usb_ss_dp_core>;
-};
-
-&usb_2 {
-       status = "okay";
-};
-
-&usb_2_dwc3 {
-       dr_mode = "host";
-};
-
-&usb_2_hsphy {
-       status = "okay";
-
-       vdda-pll-supply = <&vdd_usb_hs0_core>;
-       vdda33-supply = <&vdda_usb_hs0_3p1>;
-       vdda18-supply = <&vdda_usb_hs0_1p8>;
-};
-
-/* PINCTRL - additions to nodes defined in sc7280.dtsi */
-
-&dp_hot_plug_det {
-       bias-disable;
-};
-
-&pcie1_clkreq_n {
-       bias-pull-up;
-       drive-strength = <2>;
-};
-
-&qspi_cs0 {
-       bias-disable;
-};
-
-&qspi_clk {
-       bias-disable;
-};
-
-&qspi_data01 {
-       /* High-Z when no transfers; nice to park the lines */
-       bias-pull-up;
-};
-
-&qup_uart5_rx {
-       drive-strength = <2>;
-       bias-pull-up;
-};
-
-&qup_uart5_tx {
-       drive-strength = <2>;
-       bias-disable;
-};
-
-&qup_uart7_cts {
-       /*
-        * Configure a pull-down on CTS to match the pull of
-        * the Bluetooth module.
-        */
-       bias-pull-down;
-};
-
-&qup_uart7_rts {
-       /* We'll drive RTS, so no pull */
-       drive-strength = <2>;
-       bias-disable;
-};
-
-&qup_uart7_tx {
-       /* We'll drive TX, so no pull */
-       drive-strength = <2>;
-       bias-disable;
-};
-
-&qup_uart7_rx {
-       /*
-        * Configure a pull-up on RX. This is needed to avoid
-        * garbage data when the TX pin of the Bluetooth module is
-        * in tri-state (module powered off or not driving the
-        * signal yet).
-        */
-       bias-pull-up;
-};
-
-&sdc1_clk {
-       bias-disable;
-       drive-strength = <16>;
-};
-
-&sdc1_cmd {
-       bias-pull-up;
-       drive-strength = <10>;
-};
-
-&sdc1_data {
-       bias-pull-up;
-       drive-strength = <10>;
-};
-
-&sdc1_rclk {
-       bias-pull-down;
-};
-
-&sdc2_clk {
-       bias-disable;
-       drive-strength = <16>;
-};
-
-&sdc2_cmd {
-       bias-pull-up;
-       drive-strength = <10>;
-};
-
-&sdc2_data {
-       bias-pull-up;
-       drive-strength = <10>;
-};
-
-/* PINCTRL - board-specific pinctrl */
-
-&pm8350c_gpios {
-       gpio-line-names = "AP_SUSPEND",
-                         "",
-                         "",
-                         "AP_BL_EN",
-                         "",
-                         "SD_CD_ODL",
-                         "",
-                         "",
-                         "AP_BL_PWM";
-
-       ap_bl_en: ap-bl-en {
-               pins = "gpio4";
-               function = "normal";
-               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-               bias-disable;
-
-               /* Force backlight to be disabled to match state at boot. */
-               output-low;
-       };
-};
-
-&tlmm {
-       gpio-line-names = "HP_I2C_SDA",                 /* 0 */
-                         "HP_I2C_SCL",
-                         "SSD_RST_L",
-                         "PE_WAKE_ODL",
-                         "AP_TP_I2C_SDA",
-                         "AP_TP_I2C_SCL",
-                         "UF_CAM_EN",
-                         "WF_CAM_EN",
-                         "AP_SAR_SENSOR_SDA",
-                         "AP_SAR_SENSOR_SCL",
-
-                         "",                           /* 10 */
-                         "",
-                         "AP_SPI_MOSI",
-                         "AP_SPI_MISO",
-                         "AP_SPI_CLK",
-                         "AP_SPI_CS0_L",
-                         "",
-                         "",
-                         "EDP_HPD",
-                         "",
-
-                         "UF_CAM_RST_L",               /* 20 */
-                         "WF_CAM_RST_L",
-                         "UART_AP_TX_DBG_RX",
-                         "UART_DBG_TX_AP_RX",
-                         "EN_PP3300_HUB",
-                         "",
-                         "HOST2WLAN_SOL",
-                         "WLAN2HOST_SOL",
-                         "BT_UART_CTS",
-                         "BT_UART_RTS",
-
-                         "BT_UART_TXD",                /* 30 */
-                         "BT_UART_RXD",
-                         "AP_EC_SPI_MISO",
-                         "AP_EC_SPI_MOSI",
-                         "AP_EC_SPI_CLK",
-                         "AP_EC_SPI_CS_L",
-                         "",
-                         "",
-                         "",
-                         "PEN_PDCT_L",
-
-                         "IO_BRD_ID0",                 /* 40 */
-                         "IO_BRD_ID1",
-                         "EN_FP_RAILS",
-                         "PEN_IRQ_L",
-                         "AP_SPI_FP_MISO",
-                         "AP_SPI_FP_MOSI",
-                         "AP_SPI_FP_CLK",
-                         "AP_SPI_FP_CS_L",
-                         "AP_H1_SPI_MISO",
-                         "AP_H1_SPI_MOSI",
-
-                         "AP_H1_SPI_CLK",              /* 50 */
-                         "AP_H1_SPI_CS_L",
-                         "AP_TS_PEN_I2C_SDA",
-                         "AP_TS_PEN_I2C_SCL",
-                         "H1_AP_INT_ODL",
-                         "",
-                         "LCM_RST_1V8_L",
-                         "AMP_EN",
-                         "",
-                         "DP_HOT_PLUG_DET",
-
-                         "HUB_RST_L",                  /* 60 */
-                         "FP_TO_AP_IRQ_L",
-                         "",
-                         "",
-                         "UF_CAM_MCLK",
-                         "WF_CAM_MCLK",
-                         "IO_BRD_ID2",
-                         "EN_PP3300_CODEC",
-                         "EC_IN_RW_ODL",
-                         "UF_CAM_SDA",
-
-                         "UF_CAM_SCL",                 /* 70 */
-                         "WF_CAM_SDA",
-                         "WF_CAM_SCL",
-                         "AP_BRD_ID0",
-                         "AP_BRD_ID1",
-                         "AP_BRD_ID2",
-                         "",
-                         "FPMCU_BOOT0",
-                         "FP_RST_L",
-                         "PE_CLKREQ_ODL",
-
-                         "EN_EDP_PP3300",              /* 80 */
-                         "TS_INT_L",
-                         "FORCE_USB_BOOT",
-                         "WCD_RST_L",
-                         "WLAN_EN",
-                         "BT_EN",
-                         "WLAN_SW_CTRL",
-                         "PCIE0_RESET_L",
-                         "PCIE0_CLK_REQ_L",
-                         "PCIE0_WAKE_L",
-
-                         "AS_EN",                      /* 90 */
-                         "SD_CD_ODL",
-                         "",
-                         /*
-                          * AP_FLASH_WP_L is crossystem ABI. Schematics
-                          * call it BIOS_FLASH_WP_L.
-                          */
-                         "AP_FLASH_WP_L",
-                         "BT_WLAN_SB_CLK",
-                         "BT_WLAN_SB_DATA",
-                         "HP_MCLK",
-                         "HP_BCLK",
-                         "HP_DOUT",
-                         "HP_DIN",
-
-                         "HP_LRCLK",                   /* 100 */
-                         "HP_IRQ",
-                         "TP_INT_ODL",
-                         "",
-                         "IO_SKU_ID2",
-                         "TS_RESET_L",
-                         "AMP_BCLK",
-                         "AMP_DIN",
-                         "AMP_LRCLK",
-                         "UIM2_DATA",
-
-                         "UIM2_CLK",                   /* 110 */
-                         "UIM2_RST",
-                         "UIM2_PRESENT",
-                         "UIM1_DATA",
-                         "UIM1_CLK",
-                         "UIM1_RST",
-                         "",
-                         "RFFE0_CLK",
-                         "RFFE0_DATA/BOOT_CONFIG_0",
-                         "RFFE1_CLK",
-
-                         "RFFE1_DATA/BOOT_CONFIG_1",   /* 120 */
-                         "RFFE2_CLK",
-                         "RFFE2_DATA/BOOT_CONFIG_2",
-                         "RFFE3_CLK",
-                         "RFFE3_DATA/BOOT_CONFIG_3",
-                         "RFFE4_CLK",
-                         "RFFE4_DATA",
-                         "WCI2_LTE_COEX_RXD",
-                         "WCI2_LTE_COEX_TXD",
-                         "IO_SKU_ID0",
-
-                         "IO_SKU_ID1",                 /* 130 */
-                         "",
-                         "",
-                         "QLINK0_REQ",
-                         "QLINK0_EN",
-                         "QLINK0_WMSS_RESET_L",
-                         "QLINK1_REQ",
-                         "QLINK1_EN",
-                         "QLINK1_WMSS_RESET_L",
-                         "FORCED_USB_BOOT_POL",
-
-                         "",                           /* 140 */
-                         "P_SENSOR_INT_L",
-                         "AP_EC_INT_L",
-                         "",
-                         "WCD_SWR_TX_CLK",
-                         "WCD_SWR_TX_DATA_0",
-                         "WCD_SWR_TX_DATA_1",
-                         "WCD_SWR_RX_CLK",
-                         "WCD_SWR_RX_DATA_0",
-                         "WCD_SWR_RX_DATA_1",
-
-                         "",                           /* 150 */
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "WCD_SWR_TX_DATA_2",
-                         "",
-
-                         "",                           /* 160 */
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-                         "",
-
-                         "",                           /* 170 */
-                         "SENS_UART_TXD",
-                         "SENS_UART_RXD",
-                         "",
-                         "",
-                         "";
-
-       /*
-        * pinctrl settings for pins that have no real owners.
-        */
-       pinctrl-names = "default";
-       pinctrl-0 = <&bios_flash_wp_l>;
-
-       amp_en: amp-en {
-               pins = "gpio57";
-               function = "gpio";
-               bias-pull-down;
-       };
-
-       ap_ec_int_l: ap-ec-int-l {
-               pins = "gpio142";
-               input-enable;
-               bias-pull-up;
-       };
-
-       bios_flash_wp_l: bios-flash-wp-l {
-               pins = "gpio93";
-               function = "gpio";
-               input-enable;
-               bias-disable;
-       };
-
-       bt_en: bt-en {
-               pins = "gpio85";
-               function = "gpio";
-               drive-strength = <2>;
-               output-low;
-               bias-pull-down;
-       };
-
-       en_fp_rails: en-fp-rails {
-               pins = "gpio42";
-               drive-strength = <2>;
-               output-high;
-               bias-disable;
-       };
-
-       en_pp3300_codec: en-pp3300-codec {
-               pins = "gpio67";
-               drive-strength = <2>;
-               bias-disable;
-       };
-
-       en_pp3300_dx_edp: en-pp3300-dx-edp {
-               pins = "gpio80";
-               function = "gpio";
-               drive-strength = <2>;
-               /* Has external pulldown */
-               bias-disable;
-       };
-
-       en_pp3300_hub: en-pp3300-hub {
-               pins = "gpio24";
-               function = "gpio";
-               drive-strength = <2>;
-               /* Has external pulldown */
-               bias-disable;
-       };
-
-       fp_to_ap_irq_l: fp-to-ap-irq-l {
-               pins = "gpio61";
-               function = "gpio";
-               input-enable;
-               /* Has external pullup */
-               bias-disable;
-       };
-
-       h1_ap_int_odl: h1-ap-int-odl {
-               pins = "gpio54";
-               function = "gpio";
-               input-enable;
-               bias-pull-up;
-       };
-
-       hp_irq: hp-irq {
-               pins = "gpio101";
-               function = "gpio";
-               bias-pull-up;
-       };
-
-       p_sensor_int_l: p-sensor-int-l {
-               pins = "gpio141";
-               function = "gpio";
-               input-enable;
-               bias-pull-up;
-       };
-
-       pen_irq_l: pen-irq-l {
-               pins = "gpio43";
-               function = "gpio";
-               /* Has external pullup */
-               bias-disable;
-       };
-
-       pen_pdct_l: pen-pdct-l {
-               pins = "gpio39";
-               function = "gpio";
-               /* Has external pullup */
-               bias-disable;
-       };
-
-       qup_spi8_cs_gpio_init_high: qup-spi8-cs-gpio-init-high {
-               pins = "gpio35";
-               output-high;
-       };
-
-       qup_spi11_cs_gpio_init_high: qup-spi11-cs-gpio-init-high {
-               pins = "gpio47";
-               output-high;
-       };
-
-       qup_spi12_cs_gpio_init_high: qup-spi12-cs-gpio-init-high {
-               pins = "gpio51";
-               output-high;
-       };
-
-       qup_uart7_sleep_cts: qup-uart7-sleep-cts {
-               pins = "gpio28";
-               function = "gpio";
-               /*
-                * Configure a pull-down on CTS to match the pull of
-                * the Bluetooth module.
-                */
-               bias-pull-down;
-       };
-
-       qup_uart7_sleep_rts: qup-uart7-sleep-rts {
-               pins = "gpio29";
-               function = "gpio";
-               /*
-                * Configure pull-down on RTS. As RTS is active low
-                * signal, pull it low to indicate the BT SoC that it
-                * can wakeup the system anytime from suspend state by
-                * pulling RX low (by sending wakeup bytes).
-                */
-               bias-pull-down;
-       };
-
-       qup_uart7_sleep_rx: qup-uart7-sleep-rx {
-               pins = "gpio31";
-               function = "gpio";
-               /*
-                * Configure a pull-up on RX. This is needed to avoid
-                * garbage data when the TX pin of the Bluetooth module
-                * is floating which may cause spurious wakeups.
-                */
-               bias-pull-up;
-       };
-
-       qup_uart7_sleep_tx: qup-uart7-sleep-tx {
-               pins = "gpio30";
-               function = "gpio";
-               /*
-                * Configure pull-up on TX when it isn't actively driven
-                * to prevent BT SoC from receiving garbage during sleep.
-                */
-               bias-pull-up;
-       };
-
-       sd_cd: sd-cd {
-               pins = "gpio91";
-               function = "gpio";
-               bias-pull-up;
-       };
-
-       tp_int_odl: tp-int-odl {
-               pins = "gpio102";
-               function = "gpio";
-               /* Has external pullup */
-               bias-disable;
-       };
-
-       ts_int_l: ts-int-l {
-               pins = "gpio81";
-               function = "gpio";
-               /* Has external pullup */
-               bias-pull-up;
-       };
-
-       ts_reset_l: ts-reset-l {
-               pins = "gpio105";
-               function = "gpio";
-               /* Has external pullup */
-               bias-disable;
-               drive-strength = <2>;
-       };
-
-       uf_cam_en: uf-cam-en {
-               pins = "gpio6";
-               function = "gpio";
-               drive-strength = <2>;
-               /* Has external pulldown */
-               bias-disable;
-       };
-
-       wf_cam_en: wf-cam-en {
-               pins = "gpio7";
-               function = "gpio";
-               drive-strength = <2>;
-               /* Has external pulldown */
-               bias-disable;
-       };
-};
index f952730..b69ca09 100644 (file)
        compatible = "google,herobrine", "qcom,sc7280";
 };
 
+/*
+ * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES
+ *
+ * Sort order matches the order in the parent files (parents before children).
+ */
+
+&pp3300_codec {
+       status = "okay";
+};
+
+&pp3300_fp_mcu {
+       status = "okay";
+};
+
+&pp2850_vcm_wf_cam {
+       status = "okay";
+};
+
+&pp2850_wf_cam {
+       status = "okay";
+};
+
+&pp1800_wf_cam {
+       status = "okay";
+};
+
+&pp1200_wf_cam {
+       status = "okay";
+};
+
 /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
 
 &ap_spi_fp {
@@ -70,6 +100,14 @@ ts_i2c: &i2c13 {
        };
 };
 
+&mdss_edp {
+       status = "okay";
+};
+
+&mdss_edp_phy {
+       status = "okay";
+};
+
 /* For nvme */
 &pcie1 {
        status = "okay";
diff --git a/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts b/arch/arm64/boot/dts/qcom/sc7280-herobrine-villager-r0.dts
new file mode 100644 (file)
index 0000000..d3d6ffa
--- /dev/null
@@ -0,0 +1,304 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Google Villager board device tree source
+ *
+ * Copyright 2022 Google LLC.
+ */
+
+/dts-v1/;
+
+#include "sc7280-herobrine.dtsi"
+
+/ {
+       model = "Google Villager (rev0+)";
+       compatible = "google,villager", "qcom,sc7280";
+};
+
+/*
+ * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES
+ *
+ * Sort order matches the order in the parent files (parents before children).
+ */
+
+&pp3300_codec {
+       status = "okay";
+};
+
+/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
+
+ap_tp_i2c: &i2c0 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       trackpad: trackpad@2c {
+               compatible = "hid-over-i2c";
+               reg = <0x2c>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&tp_int_odl>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
+
+               hid-descr-addr = <0x20>;
+               vcc-supply = <&pp3300_z1>;
+
+               wakeup-source;
+       };
+};
+
+&ap_sar_sensor_i2c {
+       status = "okay";
+};
+
+&ap_sar_sensor0 {
+       status = "okay";
+};
+
+&ap_sar_sensor1 {
+       status = "okay";
+};
+
+&mdss_edp {
+       status = "okay";
+};
+
+&mdss_edp_phy {
+       status = "okay";
+};
+
+/* For nvme */
+&pcie1 {
+       status = "okay";
+};
+
+/* For nvme */
+&pcie1_phy {
+       status = "okay";
+};
+
+/* For eMMC */
+&sdhc_1 {
+       status = "okay";
+};
+
+/* PINCTRL - BOARD-SPECIFIC */
+
+/*
+ * Methodology for gpio-line-names:
+ * - If a pin goes to herobrine board and is named it gets that name.
+ * - If a pin goes to herobrine board and is not named, it gets no name.
+ * - If a pin is totally internal to Qcard then it gets Qcard name.
+ * - If a pin is not hooked up on Qcard, it gets no name.
+ */
+
+&pm8350c_gpios {
+       gpio-line-names = "FLASH_STROBE_1",             /* 1 */
+                         "AP_SUSPEND",
+                         "PM8008_1_RST_N",
+                         "",
+                         "",
+                         "",
+                         "PMIC_EDP_BL_EN",
+                         "PMIC_EDP_BL_PWM",
+                         "";
+};
+
+&tlmm {
+       gpio-line-names = "AP_TP_I2C_SDA",              /* 0 */
+                         "AP_TP_I2C_SCL",
+                         "SSD_RST_L",
+                         "PE_WAKE_ODL",
+                         "AP_SAR_SDA",
+                         "AP_SAR_SCL",
+                         "PRB_SC_GPIO_6",
+                         "TP_INT_ODL",
+                         "HP_I2C_SDA",
+                         "HP_I2C_SCL",
+
+                         "GNSS_L1_EN",                 /* 10 */
+                         "GNSS_L5_EN",
+                         "SPI_AP_MOSI",
+                         "SPI_AP_MISO",
+                         "SPI_AP_CLK",
+                         "SPI_AP_CS0_L",
+                         /*
+                          * AP_FLASH_WP is crossystem ABI. Schematics
+                          * call it BIOS_FLASH_WP_OD.
+                          */
+                         "AP_FLASH_WP",
+                         "",
+                         "AP_EC_INT_L",
+                         "",
+
+                         "UF_CAM_RST_L",               /* 20 */
+                         "WF_CAM_RST_L",
+                         "UART_AP_TX_DBG_RX",
+                         "UART_DBG_TX_AP_RX",
+                         "",
+                         "PM8008_IRQ_1",
+                         "HOST2WLAN_SOL",
+                         "WLAN2HOST_SOL",
+                         "MOS_BT_UART_CTS",
+                         "MOS_BT_UART_RFR",
+
+                         "MOS_BT_UART_TX",             /* 30 */
+                         "MOS_BT_UART_RX",
+                         "PRB_SC_GPIO_32",
+                         "HUB_RST_L",
+                         "",
+                         "",
+                         "AP_SPI_FP_MISO",
+                         "AP_SPI_FP_MOSI",
+                         "AP_SPI_FP_CLK",
+                         "AP_SPI_FP_CS_L",
+
+                         "AP_EC_SPI_MISO",             /* 40 */
+                         "AP_EC_SPI_MOSI",
+                         "AP_EC_SPI_CLK",
+                         "AP_EC_SPI_CS_L",
+                         "LCM_RST_L",
+                         "EARLY_EUD_N",
+                         "",
+                         "DP_HOT_PLUG_DET",
+                         "IO_BRD_MLB_ID0",
+                         "IO_BRD_MLB_ID1",
+
+                         "IO_BRD_MLB_ID2",             /* 50 */
+                         "SSD_EN",
+                         "TS_I2C_SDA_CONN",
+                         "TS_I2C_CLK_CONN",
+                         "TS_RST_CONN",
+                         "TS_INT_CONN",
+                         "AP_I2C_TPM_SDA",
+                         "AP_I2C_TPM_SCL",
+                         "PRB_SC_GPIO_58",
+                         "PRB_SC_GPIO_59",
+
+                         "EDP_HOT_PLUG_DET_N",         /* 60 */
+                         "FP_TO_AP_IRQ_L",
+                         "",
+                         "AMP_EN",
+                         "CAM0_MCLK_GPIO_64",
+                         "CAM1_MCLK_GPIO_65",
+                         "WF_CAM_MCLK",
+                         "PRB_SC_GPIO_67",
+                         "FPMCU_BOOT0",
+                         "UF_CAM_SDA",
+
+                         "UF_CAM_SCL",                 /* 70 */
+                         "",
+                         "",
+                         "WF_CAM_SDA",
+                         "WF_CAM_SCL",
+                         "",
+                         "",
+                         "EN_FP_RAILS",
+                         "FP_RST_L",
+                         "PCIE1_CLKREQ_ODL",
+
+                         "EN_PP3300_DX_EDP",           /* 80 */
+                         "SC_GPIO_81",
+                         "FORCED_USB_BOOT",
+                         "WCD_RESET_N",
+                         "MOS_WLAN_EN",
+                         "MOS_BT_EN",
+                         "MOS_SW_CTRL",
+                         "MOS_PCIE0_RST",
+                         "MOS_PCIE0_CLKREQ_N",
+                         "MOS_PCIE0_WAKE_N",
+
+                         "MOS_LAA_AS_EN",              /* 90 */
+                         "SD_CD_ODL",
+                         "",
+                         "",
+                         "MOS_BT_WLAN_SLIMBUS_CLK",
+                         "MOS_BT_WLAN_SLIMBUS_DAT0",
+                         "HP_MCLK",
+                         "HP_BCLK",
+                         "HP_DOUT",
+                         "HP_DIN",
+
+                         "HP_LRCLK",                   /* 100 */
+                         "HP_IRQ",
+                         "",
+                         "",
+                         "GSC_AP_INT_ODL",
+                         "EN_PP3300_CODEC",
+                         "AMP_BCLK",
+                         "AMP_DIN",
+                         "AMP_LRCLK",
+                         "UIM1_DATA_GPIO_109",
+
+                         "UIM1_CLK_GPIO_110",          /* 110 */
+                         "UIM1_RESET_GPIO_111",
+                         "PRB_SC_GPIO_112",
+                         "UIM0_DATA",
+                         "UIM0_CLK",
+                         "UIM0_RST",
+                         "UIM0_PRESENT_ODL",
+                         "SDM_RFFE0_CLK",
+                         "SDM_RFFE0_DATA",
+                         "WF_CAM_EN",
+
+                         "FASTBOOT_SEL_0",             /* 120 */
+                         "SC_GPIO_121",
+                         "FASTBOOT_SEL_1",
+                         "SC_GPIO_123",
+                         "FASTBOOT_SEL_2",
+                         "SM_RFFE4_CLK_GRFC_8",
+                         "SM_RFFE4_DATA_GRFC_9",
+                         "WLAN_COEX_UART1_RX",
+                         "WLAN_COEX_UART1_TX",
+                         "PRB_SC_GPIO_129",
+
+                         "LCM_ID0",                    /* 130 */
+                         "LCM_ID1",
+                         "",
+                         "SDR_QLINK_REQ",
+                         "SDR_QLINK_EN",
+                         "QLINK0_WMSS_RESET_N",
+                         "SMR526_QLINK1_REQ",
+                         "SMR526_QLINK1_EN",
+                         "SMR526_QLINK1_WMSS_RESET_N",
+                         "PRB_SC_GPIO_139",
+
+                         "SAR1_IRQ_ODL",               /* 140 */
+                         "SAR0_IRQ_ODL",
+                         "PRB_SC_GPIO_142",
+                         "",
+                         "WCD_SWR_TX_CLK",
+                         "WCD_SWR_TX_DATA0",
+                         "WCD_SWR_TX_DATA1",
+                         "WCD_SWR_RX_CLK",
+                         "WCD_SWR_RX_DATA0",
+                         "WCD_SWR_RX_DATA1",
+
+                         "DMIC01_CLK",                 /* 150 */
+                         "DMIC01_DATA",
+                         "DMIC23_CLK",
+                         "DMIC23_DATA",
+                         "",
+                         "",
+                         "EC_IN_RW_ODL",
+                         "HUB_EN",
+                         "WCD_SWR_TX_DATA2",
+                         "",
+
+                         "",                           /* 160 */
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+                         "",
+
+                         "",                           /* 170 */
+                         "MOS_BLE_UART_TX",
+                         "MOS_BLE_UART_RX",
+                         "",
+                         "",
+                         "";
+};
index dc17f20..9cb1bc8 100644 (file)
@@ -92,6 +92,7 @@
                pinctrl-0 = <&en_pp3300_codec>;
 
                vin-supply = <&pp3300_z1>;
+               status = "disabled";
        };
 
        pp3300_left_in_mlb: pp3300-left-in-mlb-regulator {
                pinctrl-0 = <&en_fp_rails>;
 
                vin-supply = <&pp3300_z1>;
+               status = "disabled";
        };
 
        pp3300_hub: pp3300-hub-regulator {
                pinctrl-names = "default";
                pinctrl-0 = <&ssd_en>;
 
+               /*
+                * The bootloaer may have left PCIe configured. Powering this
+                * off while the PCIe clocks are still running isn't great,
+                * so it's better to default to this regulator being on.
+                */
+               regulator-boot-on;
+
                vin-supply = <&pp3300_z1>;
        };
 
                pinctrl-0 = <&wf_cam_en>;
 
                vin-supply = <&pp3300_z1>;
+               status = "disabled";
        };
 
        pp2850_wf_cam: pp2850-wf-cam-regulator {
                 */
 
                vin-supply = <&pp3300_z1>;
+               status = "disabled";
        };
 
        pp1800_fp: pp1800-fp-regulator {
                 */
 
                vin-supply = <&vreg_l19b_s0>;
+               status = "disabled";
        };
 
        pp1200_wf_cam: pp1200-wf-cam-regulator {
                 */
 
                vin-supply = <&pp3300_z1>;
+               status = "disabled";
        };
 
        /* BOARD-SPECIFIC TOP LEVEL NODES */
 };
 
 /*
- * BOARD-LOCAL NAMES FOR REGULATORS THAT CONNECT TO QCARD
+ * ADJUSTMENTS TO QCARD REGULATORS
+ *
+ * Mostly this is just board-local names for regulators that come from
+ * Qcard, but this also has some minor regulator overrides.
  *
  * Names are only listed here if regulators go somewhere other than a
  * testpoint.
@@ -339,8 +355,60 @@ vreg_edp_bl: &ppvar_sys {};
 ts_avdd:      &pp3300_left_in_mlb {};
 vreg_edp_3p3: &pp3300_left_in_mlb {};
 
+/* Regulator overrides from Qcard */
+
+/*
+ * Herobrine boards only use l2c to power an external audio codec (like
+ * alc5682) and we want that to be at 1.8V, not at some slightly lower voltage.
+ */
+&vreg_l2c_1p8 {
+       regulator-min-microvolt = <1800000>;
+};
+
 /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
 
+&edp_panel {
+       /* Our board provides power to the qcard for the eDP panel. */
+       power-supply = <&vreg_edp_3p3>;
+};
+
+ap_sar_sensor_i2c: &i2c1 {
+       clock-frequency = <400000>;
+       status = "disabled";
+
+       ap_sar_sensor0: proximity@28 {
+               compatible = "semtech,sx9324";
+               reg = <0x28>;
+               #io-channel-cells = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sar0_irq_odl>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <141 IRQ_TYPE_LEVEL_LOW>;
+
+               vdd-supply = <&pp1800_prox>;
+
+               label = "proximity-wifi-lte0";
+               status = "disabled";
+       };
+
+       ap_sar_sensor1: proximity@2c {
+               compatible = "semtech,sx9324";
+               reg = <0x2c>;
+               #io-channel-cells = <1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sar1_irq_odl>;
+
+               interrupt-parent = <&tlmm>;
+               interrupts = <140 IRQ_TYPE_LEVEL_LOW>;
+
+               vdd-supply = <&pp1800_prox>;
+
+               label = "proximity-wifi-lte1";
+               status = "disabled";
+       };
+};
+
 ap_i2c_tpm: &i2c14 {
        status = "okay";
        clock-frequency = <400000>;
@@ -357,6 +425,14 @@ ap_i2c_tpm: &i2c14 {
        };
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_mdp {
+       status = "okay";
+};
+
 /* NVMe drive, enabled on a per-board basis */
 &pcie1 {
        pinctrl-names = "default";
@@ -366,6 +442,17 @@ ap_i2c_tpm: &i2c14 {
        vddpe-3v3-supply = <&pp3300_ssd>;
 };
 
+&pm8350c_pwm {
+       status = "okay";
+};
+
+&pm8350c_pwm_backlight {
+       status = "okay";
+
+       /* Our board provides power to the qcard for the backlight */
+       power-supply = <&vreg_edp_bl>;
+};
+
 &pmk8350_rtc {
        status = "disabled";
 };
@@ -677,7 +764,6 @@ ap_ec_spi: &spi10 {
                function = "gpio";
                bias-disable;
                drive-strength = <2>;
-               output-high;
        };
 
        fp_to_ap_irq_l: fp-to-ap-irq-l {
@@ -691,7 +777,6 @@ ap_ec_spi: &spi10 {
                pins = "gpio68";
                function = "gpio";
                bias-disable;
-               output-low;
        };
 
        gsc_ap_int_odl: gsc-ap-int-odl {
@@ -741,7 +826,7 @@ ap_ec_spi: &spi10 {
                bias-pull-up;
        };
 
-       sar1_irq_odl: sar0-irq-odl {
+       sar1_irq_odl: sar1-irq-odl {
                pins = "gpio140";
                function = "gpio";
                bias-pull-up;
index a7be133..6d3ff80 100644 (file)
@@ -90,7 +90,7 @@
 };
 
 &usb_2_dwc3 {
-       dr_mode = "host";
+       dr_mode = "otg";
 };
 
 &usb_2_hsphy {
index ecbf2b8..5eb6689 100644 (file)
        };
 };
 
+&gpi_dma0 {
+       status = "okay";
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
 &ipa {
        status = "okay";
        modem-init;
 
 &qup_uart7_cts {
        /*
-        * Configure a pull-down on CTS to match the pull of
-        * the Bluetooth module.
+        * Configure a bias-bus-hold on CTS to lower power
+        * usage when Bluetooth is turned off. Bus hold will
+        * maintain a low power state regardless of whether
+        * the Bluetooth module drives the pin in either
+        * direction or leaves the pin fully unpowered.
         */
-       bias-pull-down;
+       bias-bus-hold;
 };
 
 &qup_uart7_rts {
                pins = "gpio28";
                function = "gpio";
                /*
-                * Configure a pull-down on CTS to match the pull of
-                * the Bluetooth module.
+                * Configure a bias-bus-hold on CTS to lower power
+                * usage when Bluetooth is turned off. Bus hold will
+                * maintain a low power state regardless of whether
+                * the Bluetooth module drives the pin in either
+                * direction or leaves the pin fully unpowered.
                 */
-               bias-pull-down;
+               bias-bus-hold;
        };
 
        qup_uart7_sleep_rts: qup-uart7-sleep-rts {
        };
 };
 
+&remoteproc_wpss {
+       status = "okay";
+};
+
+&wifi {
+       status = "okay";
+       wifi-firmware {
+               iommus = <&apps_smmu 0x1c02 0x1>;
+       };
+};
index 73b9911..d4f7cab 100644 (file)
@@ -34,3 +34,7 @@
 &nvme_3v3_regulator {
        gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>;
 };
+
+&pm8350c_pwm {
+       status = "okay";
+};
index b833ba1..d59002d 100644 (file)
                serial0 = &uart5;
                serial1 = &uart7;
        };
+
+       pm8350c_pwm_backlight: backlight {
+               compatible = "pwm-backlight";
+               status = "disabled";
+
+               enable-gpios = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_edp_bl_en>;
+               pwms = <&pm8350c_pwm 3 65535>;
+       };
 };
 
 &apps_rsc {
        modem-init;
 };
 
+/* NOTE: Not all Qcards have eDP connector stuffed */
+&mdss_edp {
+       vdda-0p9-supply = <&vdd_a_edp_0_0p9>;
+       vdda-1p2-supply = <&vdd_a_edp_0_1p2>;
+
+       aux-bus {
+               edp_panel: panel {
+                       compatible = "edp-panel";
+
+                       backlight = <&pm8350c_pwm_backlight>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       edp_panel_in: endpoint {
+                                               remote-endpoint = <&mdss_edp_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&mdss_edp_out {
+       remote-endpoint = <&edp_panel_in>;
+};
+
+&mdss_edp_phy {
+       vdda-pll-supply = <&vdd_a_edp_0_0p9>;
+       vdda-phy-supply = <&vdd_a_edp_0_1p2>;
+};
+
 &pcie1_phy {
        vdda-phy-supply = <&vreg_l10c_0p88>;
        vdda-pll-supply = <&vreg_l6b_1p2>;
 };
 
+&pm8350c_pwm {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pmic_edp_bl_pwm>;
+};
+
 &pmk8350_vadc {
        pmk8350-die-temp@3 {
                reg = <PMK8350_ADC7_DIE_TEMP>;
@@ -383,6 +432,11 @@ mos_bt_uart: &uart7 {
  * baseboard or board device tree, not here.
  */
 
+/* No external pull for eDP HPD, so set the internal one. */
+&edp_hot_plug_det {
+       bias-pull-down;
+};
+
 /*
  * For ts_i2c
  *
@@ -398,8 +452,14 @@ mos_bt_uart: &uart7 {
 
 /* For mos_bt_uart */
 &qup_uart7_cts {
-       /* Configure a pull-down on CTS to match the pull of the Bluetooth module. */
-       bias-pull-down;
+       /*
+        * Configure a bias-bus-hold on CTS to lower power
+        * usage when Bluetooth is turned off. Bus hold will
+        * maintain a low power state regardless of whether
+        * the Bluetooth module drives the pin in either
+        * direction or leaves the pin fully unpowered.
+        */
+       bias-bus-hold;
 };
 
 /* For mos_bt_uart */
@@ -490,10 +550,13 @@ mos_bt_uart: &uart7 {
                pins = "gpio28";
                function = "gpio";
                /*
-                * Configure a pull-down on CTS to match the pull of
-                * the Bluetooth module.
+                * Configure a bias-bus-hold on CTS to lower power
+                * usage when Bluetooth is turned off. Bus hold will
+                * maintain a low power state regardless of whether
+                * the Bluetooth module drives the pin in either
+                * direction or leaves the pin fully unpowered.
                 */
-               bias-pull-down;
+               bias-bus-hold;
        };
 
        /* For mos_bt_uart */
index f0b64be..f72451f 100644 (file)
@@ -8,8 +8,11 @@
 #include <dt-bindings/clock/qcom,dispcc-sc7280.h>
 #include <dt-bindings/clock/qcom,gcc-sc7280.h>
 #include <dt-bindings/clock/qcom,gpucc-sc7280.h>
+#include <dt-bindings/clock/qcom,lpassaudiocc-sc7280.h>
+#include <dt-bindings/clock/qcom,lpasscorecc-sc7280.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
 #include <dt-bindings/clock/qcom,videocc-sc7280.h>
+#include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,osm-l3.h>
 #include <dt-bindings/interconnect/qcom,sc7280.h>
                #size-cells = <2>;
                ranges;
 
+               wlan_ce_mem: memory@4cd000 {
+                       no-map;
+                       reg = <0x0 0x004cd000 0x0 0x1000>;
+               };
+
                hyp_mem: memory@80000000 {
                        reg = <0x0 0x80000000 0x0 0x600000>;
                        no-map;
                        power-domains = <&rpmhpd SC7280_MX>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       gpu_speed_bin: gpu_speed_bin@1e9 {
+                               reg = <0x1e9 0x2>;
+                               bits = <5 8>;
+                       };
                };
 
                sdhc_1: sdhci@7c4000 {
                        mmc-hs400-1_8v;
                        mmc-hs400-enhanced-strobe;
 
+                       resets = <&gcc GCC_SDCC1_BCR>;
+
                        sdhc1_opp_table: opp-table {
                                compatible = "operating-points-v2";
 
 
                };
 
+               gpi_dma0: dma-controller@900000 {
+                       #dma-cells = <3>;
+                       compatible = "qcom,sc7280-gpi-dma";
+                       reg = <0 0x00900000 0 0x60000>;
+                       interrupts = <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>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x7f>;
+                       iommus = <&apps_smmu 0x0136 0x0>;
+                       status = "disabled";
+               };
+
                qupv3_id_0: geniqup@9c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0 0x009c0000 0 0x2000>;
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre1_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_0 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma0 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                        };
                };
 
+               gpi_dma1: dma-controller@a00000 {
+                       #dma-cells = <3>;
+                       compatible = "qcom,sc7280-gpi-dma";
+                       reg = <0 0x00a00000 0 0x60000>;
+                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x1e>;
+                       iommus = <&apps_smmu 0x56 0x0>;
+                       status = "disabled";
+               };
+
                qupv3_id_1: geniqup@ac0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0 0x00ac0000 0 0x2000>;
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                                <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
                                interconnect-names = "qup-core", "qup-config",
                                                        "qup-memory";
+                               dmas = <&gpi_dma1 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
                                                <&gem_noc MASTER_APPSS_PROC 0 &cnoc2 SLAVE_QUP_1 0>;
                                interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma1 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               wifi: wifi@17a10040 {
+                       compatible = "qcom,wcn6750-wifi";
+                       reg = <0 0x17a10040 0 0x0>;
+                       iommus = <&apps_smmu 0x1c00 0x1>;
+                       interrupts = <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 769 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 770 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 771 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 773 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 774 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 775 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 776 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 777 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 778 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 779 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 780 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 781 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 782 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 783 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 784 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 785 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 786 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 787 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 788 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 789 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 790 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 791 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 792 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 793 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 794 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 795 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 796 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 797 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 798 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 799 IRQ_TYPE_EDGE_RISING>;
+                       qcom,rproc = <&remoteproc_wpss>;
+                       memory-region = <&wlan_fw_mem>, <&wlan_ce_mem>;
+                       status = "disabled";
+               };
+
                pcie1: pci@1c08000 {
                        compatible = "qcom,pcie-sc7280";
                        reg = <0 0x01c08000 0 0x3000>,
 
                        status = "disabled";
 
-                       pcie1_lane: lanes@1c0e200 {
+                       pcie1_lane: phy@1c0e200 {
                                reg = <0 0x01c0e200 0 0x170>,
                                      <0 0x01c0e400 0 0x200>,
                                      <0 0x01c0ea00 0 0x1f0>,
                        #clock-cells = <1>;
                };
 
+               lpass_audiocc: clock-controller@3300000 {
+                       compatible = "qcom,sc7280-lpassaudiocc";
+                       reg = <0 0x03300000 0 0x30000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                              <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>;
+                       clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src";
+                       power-domains = <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>;
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               lpass_aon: clock-controller@3380000 {
+                       compatible = "qcom,sc7280-lpassaoncc";
+                       reg = <0 0x03380000 0 0x30000>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                              <&rpmhcc RPMH_CXO_CLK_A>,
+                              <&lpasscore LPASS_CORE_CC_CORE_CLK>;
+                       clock-names = "bi_tcxo", "bi_tcxo_ao", "iface";
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               lpasscore: clock-controller@3900000 {
+                       compatible = "qcom,sc7280-lpasscorecc";
+                       reg = <0 0x03900000 0 0x50000>;
+                       clocks =  <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "bi_tcxo";
+                       power-domains = <&lpass_hm LPASS_CORE_CC_LPASS_CORE_HM_GDSC>;
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
+               lpass_hm: clock-controller@3c00000 {
+                       compatible = "qcom,sc7280-lpasshm";
+                       reg = <0 0x3c00000 0 0x28>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "bi_tcxo";
+                       #clock-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                lpass_ag_noc: interconnect@3c40000 {
                        reg = <0 0x03c40000 0 0xf080>;
                        compatible = "qcom,sc7280-lpass-ag-noc";
                        interconnect-names = "gfx-mem";
                        #cooling-cells = <2>;
 
+                       nvmem-cells = <&gpu_speed_bin>;
+                       nvmem-cell-names = "speed_bin";
+
                        gpu_opp_table: opp-table {
                                compatible = "operating-points-v2";
 
                                        opp-hz = /bits/ 64 <315000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
                                        opp-peak-kBps = <1804000>;
+                                       opp-supported-hw = <0x03>;
                                };
 
                                opp-450000000 {
                                        opp-hz = /bits/ 64 <450000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
                                        opp-peak-kBps = <4068000>;
+                                       opp-supported-hw = <0x03>;
                                };
 
                                opp-550000000 {
                                        opp-hz = /bits/ 64 <550000000>;
                                        opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
                                        opp-peak-kBps = <6832000>;
+                                       opp-supported-hw = <0x03>;
+                               };
+
+                               opp-608000000 {
+                                       opp-hz = /bits/ 64 <608000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                                       opp-peak-kBps = <8368000>;
+                                       opp-supported-hw = <0x02>;
+                               };
+
+                               opp-700000000 {
+                                       opp-hz = /bits/ 64 <700000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       opp-peak-kBps = <8532000>;
+                                       opp-supported-hw = <0x02>;
+                               };
+
+                               opp-812000000 {
+                                       opp-hz = /bits/ 64 <812000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       opp-peak-kBps = <8532000>;
+                                       opp-supported-hw = <0x02>;
+                               };
+
+                               opp-840000000 {
+                                       opp-hz = /bits/ 64 <840000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       opp-peak-kBps = <8532000>;
+                                       opp-supported-hw = <0x02>;
+                               };
+
+                               opp-900000000 {
+                                       opp-hz = /bits/ 64 <900000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       opp-peak-kBps = <8532000>;
+                                       opp-supported-hw = <0x02>;
                                };
                        };
                };
 
                        qcom,dll-config = <0x0007642c>;
 
+                       resets = <&gcc GCC_SDCC2_BCR>;
+
                        sdhc2_opp_table: opp-table {
                                compatible = "operating-points-v2";
 
                        status = "disabled";
                };
 
+               remoteproc_wpss: remoteproc@8a00000 {
+                       compatible = "qcom,sc7280-wpss-pil";
+                       reg = <0 0x08a00000 0 0x10000>;
+
+                       interrupts-extended = <&intc GIC_SPI 587 IRQ_TYPE_EDGE_RISING>,
+                                             <&wpss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&wpss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&wpss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&wpss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&wpss_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover",
+                                         "stop-ack", "shutdown-ack";
+
+                       clocks = <&gcc GCC_WPSS_AHB_BDG_MST_CLK>,
+                                <&gcc GCC_WPSS_AHB_CLK>,
+                                <&gcc GCC_WPSS_RSCP_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ahb_bdg", "ahb",
+                                     "rscp", "xo";
+
+                       power-domains = <&rpmhpd SC7280_CX>,
+                                       <&rpmhpd SC7280_MX>;
+                       power-domain-names = "cx", "mx";
+
+                       memory-region = <&wpss_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&wpss_smp2p_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       resets = <&aoss_reset AOSS_CC_WCSS_RESTART>,
+                                <&pdc_reset PDC_WPSS_SYNC_RESET>;
+                       reset-names = "restart", "pdc_sync";
+
+                       qcom,halt-regs = <&tcsr_mutex 0x37000>;
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_WPSS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_WPSS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "wpss";
+                               qcom,remote-pid = <13>;
+                       };
+               };
+
                dc_noc: interconnect@90e0000 {
                        reg = <0 0x090e0000 0 0x5080>;
                        compatible = "qcom,sc7280-dc-noc";
                                phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
                                phy-names = "usb2-phy", "usb3-phy";
                                maximum-speed = "super-speed";
+                               wakeup-source;
                        };
                };
 
 
                                        port@1 {
                                                reg = <1>;
-                                               edp_out: endpoint { };
+                                               mdss_edp_out: endpoint { };
                                        };
                                };
 
index 2402935..7f875bf 100644 (file)
                                reg-names = "mdp_phys";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <0>;
 
                                assigned-clocks = <&mmcc MDSS_MDP_CLK>,
                                                  <&mmcc MDSS_VSYNC_CLK>;
                                power-domains = <&rpmpd SDM660_VDDCX>;
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <4>;
 
                                assigned-clocks = <&mmcc BYTE0_CLK_SRC>,
                                                  <&mmcc PCLK0_CLK_SRC>;
index eccf6fd..1d748c5 100644 (file)
                power-domains = <&rpmpd SDM660_VDDCX>;
 
                interrupt-parent = <&mdss>;
-               interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+               interrupts = <5>;
 
                assigned-clocks = <&mmcc BYTE1_CLK_SRC>,
                                        <&mmcc PCLK1_CLK_SRC>;
index 28fe45c..194ebeb 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
+       /* Fixed crystal oscillator dedicated to MCP2517FD */
+       clk40M: can-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <40000000>;
+       };
+
        dc12v: dc12v-regulator {
                compatible = "regulator-fixed";
                regulator-name = "DC12V";
        };
 };
 
+&spi0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&qup_spi0_default>;
+       cs-gpios = <&tlmm 3 GPIO_ACTIVE_LOW>;
+
+       can@0 {
+               compatible = "microchip,mcp2517fd";
+               reg = <0>;
+               clocks = <&clk40M>;
+               interrupts-extended = <&tlmm 104 IRQ_TYPE_LEVEL_LOW>;
+               spi-max-frequency = <10000000>;
+               vdd-supply = <&vdc_5v>;
+               xceiver-supply = <&vdc_5v>;
+       };
+};
+
 &spi2 {
        /* On Low speed expansion */
        label = "LS-SPI0";
        vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
 
        qcom,snoc-host-cap-8bit-quirk;
+       qcom,ath10k-calibration-variant = "Thundercomm_DB845C";
 };
 
 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
                };
        };
 };
+
+/* PINCTRL - additions to nodes defined in sdm845.dtsi */
+&qup_spi0_default {
+       config {
+               drive-strength = <6>;
+               bias-disable;
+       };
+};
index 3673895..d88dc07 100644 (file)
 
 &adsp_pas {
        status = "okay";
-       firmware-name = "qcom/sdm845/adsp.mdt";
+       firmware-name = "qcom/sdm845/beryllium/adsp.mbn";
 };
 
 &apps_rsc {
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l23a_3p3: ldo23 {
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3312000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l24a_3p075: ldo24 {
                        regulator-min-microvolt = <3088000>;
                        regulator-max-microvolt = <3088000>;
 
 &cdsp_pas {
        status = "okay";
-       firmware-name = "qcom/sdm845/cdsp.mdt";
+       firmware-name = "qcom/sdm845/beryllium/cdsp.mbn";
 };
 
 &dsi0 {
        panel@0 {
                compatible = "tianma,fhd-video";
                reg = <0>;
-               vddi0-supply = <&vreg_l14a_1p8>;
+               vddio-supply = <&vreg_l14a_1p8>;
                vddpos-supply = <&lab>;
                vddneg-supply = <&ibb>;
 
                #address-cells = <1>;
                #size-cells = <0>;
 
+               backlight = <&pmi8998_wled>;
                reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
 
                port {
 
        zap-shader {
                memory-region = <&gpu_mem>;
-               firmware-name = "qcom/sdm845/a630_zap.mbn";
+               firmware-name = "qcom/sdm845/beryllium/a630_zap.mbn";
        };
 };
 
 
 &mss_pil {
        status = "okay";
-       firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt";
+       firmware-name = "qcom/sdm845/beryllium/mba.mbn", "qcom/sdm845/beryllium/modem.mbn";
+};
+
+&ipa {
+       status = "okay";
+       memory-region = <&ipa_fw_mem>;
+       firmware-name = "qcom/sdm845/beryllium/ipa_fws.mbn";
 };
 
 &pm8998_gpio {
        };
 };
 
+&pmi8998_wled {
+       status = "okay";
+       qcom,current-boost-limit = <970>;
+       qcom,ovp-millivolt = <29600>;
+       qcom,current-limit-microamp = <20000>;
+       qcom,num-strings = <2>;
+       qcom,switching-freq = <600>;
+       qcom,external-pfet;
+       qcom,cabc;
+};
+
 &pm8998_pon {
        resin {
                compatible = "qcom,pm8941-resin";
        vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
        vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
        vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+       vdd-3.3-ch1-supply = <&vreg_l23a_3p3>;
 };
 
 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
index b31bf62..692cf4b 100644 (file)
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0
                                           &LITTLE_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       capacity-dmips-mhz = <607>;
-                       dynamic-power-coefficient = <100>;
+                       capacity-dmips-mhz = <611>;
+                       dynamic-power-coefficient = <290>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0
                                           &LITTLE_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       capacity-dmips-mhz = <607>;
-                       dynamic-power-coefficient = <100>;
+                       capacity-dmips-mhz = <611>;
+                       dynamic-power-coefficient = <290>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0
                                           &LITTLE_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       capacity-dmips-mhz = <607>;
-                       dynamic-power-coefficient = <100>;
+                       capacity-dmips-mhz = <611>;
+                       dynamic-power-coefficient = <290>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&LITTLE_CPU_SLEEP_0
                                           &LITTLE_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       capacity-dmips-mhz = <607>;
-                       dynamic-power-coefficient = <100>;
+                       capacity-dmips-mhz = <611>;
+                       dynamic-power-coefficient = <290>;
                        qcom,freq-domain = <&cpufreq_hw 0>;
                        operating-points-v2 = <&cpu0_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&BIG_CPU_SLEEP_0
                                           &BIG_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       dynamic-power-coefficient = <396>;
+                       dynamic-power-coefficient = <442>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&BIG_CPU_SLEEP_0
                                           &BIG_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       dynamic-power-coefficient = <396>;
+                       dynamic-power-coefficient = <442>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&BIG_CPU_SLEEP_0
                                           &BIG_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       dynamic-power-coefficient = <396>;
+                       dynamic-power-coefficient = <442>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                        cpu-idle-states = <&BIG_CPU_SLEEP_0
                                           &BIG_CPU_SLEEP_1
                                           &CLUSTER_SLEEP_0>;
-                       dynamic-power-coefficient = <396>;
+                       dynamic-power-coefficient = <442>;
                        qcom,freq-domain = <&cpufreq_hw 1>;
                        operating-points-v2 = <&cpu4_opp_table>;
                        interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>,
                };
 
                pcie0: pci@1c00000 {
-                       compatible = "qcom,pcie-sdm845", "snps,dw-pcie";
+                       compatible = "qcom,pcie-sdm845";
                        reg = <0 0x01c00000 0 0x2000>,
                              <0 0x60000000 0 0xf1d>,
                              <0 0x60000f20 0 0xa8>,
                };
 
                pcie1: pci@1c08000 {
-                       compatible = "qcom,pcie-sdm845", "snps,dw-pcie";
+                       compatible = "qcom,pcie-sdm845";
                        reg = <0 0x01c08000 0 0x2000>,
                              <0 0x40000000 0 0xf1d>,
                              <0 0x40000f20 0 0xa8>,
                                power-domains = <&rpmhpd SDM845_CX>;
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <0>;
 
                                ports {
                                        #address-cells = <1>;
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <4>;
 
                                clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
                                         <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <5>;
 
                                clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
                                         <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
index d7c9edf..fb1a0f6 100644 (file)
                        };
                };
 
+               qupv3_id_0: geniqup@8c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x8c0000 0x0 0x2000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       iommus = <&apps_smmu 0x43 0x0>;
+                       ranges;
+                       status = "disabled";
+
+                       i2c0: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00880000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c0_default>;
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00888000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c2_default>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+
                qupv3_id_1: geniqup@9c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x9c0000 0x0 0x2000>;
                        ranges;
                        status = "disabled";
 
-                       uart2: serial@98c000 {
+                       i2c6: i2c@980000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00980000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c6_default>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@984000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00984000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c7_default>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       i2c8: i2c@988000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00988000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c8_default>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       uart9: serial@98c000 {
                                compatible = "qcom,geni-debug-uart";
                                reg = <0 0x98c000 0 0x4000>;
                                clock-names = "se";
                                clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
                                pinctrl-names = "default";
-                               pinctrl-0 = <&qup_uart2_default>;
+                               pinctrl-0 = <&qup_uart9_default>;
                                interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
                                status = "disabled";
                        };
+
+                       i2c10: i2c@990000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00990000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c10_default>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+
+               };
+
+               ufs_mem_hc: ufs@1d84000 {
+                       compatible = "qcom,sm6350-ufshc", "qcom,ufshc",
+                                    "jedec,ufs-2.0";
+                       reg = <0 0x01d84000 0 0x3000>,
+                             <0 0x01d90000 0 0x8000>;
+                       reg-names = "std", "ice";
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufs_mem_phy_lanes>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       #reset-cells = <1>;
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
+                       iommus = <&apps_smmu 0x80 0x0>;
+
+                       clock-names = "core_clk",
+                                     "bus_aggr_clk",
+                                     "iface_clk",
+                                     "core_clk_unipro",
+                                     "ref_clk",
+                                     "tx_lane0_sync_clk",
+                                     "rx_lane0_sync_clk",
+                                     "rx_lane1_sync_clk",
+                                     "ice_core_clk";
+                       clocks = <&gcc GCC_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_UFS_PHY_AHB_CLK>,
+                                <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                                <&rpmhcc RPMH_QLINK_CLK>,
+                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>,
+                                <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+                       freq-table-hz =
+                               <50000000 200000000>,
+                               <0 0>,
+                               <0 0>,
+                               <37500000 150000000>,
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>;
+
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy@1d87000 {
+                       compatible = "qcom,sm6350-qmp-ufs-phy";
+                       reg = <0 0x01d87000 0 0x18c>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clock-names = "ref",
+                                     "ref_aux";
+                       clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+
+                       status = "disabled";
+
+                       ufs_mem_phy_lanes: phy@1d87400 {
+                               reg = <0 0x01d87400 0 0x128>,
+                                     <0 0x01d87600 0 0x1fc>,
+                                     <0 0x01d87c00 0 0x1dc>,
+                                     <0 0x01d87800 0 0x128>,
+                                     <0 0x01d87a00 0 0x1fc>;
+                               #phy-cells = <0>;
+                       };
                };
 
                tcsr_mutex: hwlock@1f40000 {
                        #interrupt-cells = <2>;
                        gpio-ranges = <&tlmm 0 0 157>;
 
-                       qup_uart2_default: qup-uart2-default {
+                       qup_uart9_default: qup-uart9-default {
                                pins = "gpio25", "gpio26";
                                function = "qup13_f2";
                                drive-strength = <2>;
                                bias-disable;
                        };
+
+                       qup_i2c0_default: qup-i2c0-default {
+                               pins = "gpio0", "gpio1";
+                               function = "qup00";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c2_default: qup-i2c2-default {
+                               pins = "gpio45", "gpio46";
+                               function = "qup02";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c6_default: qup-i2c6-default {
+                               pins = "gpio13", "gpio14";
+                               function = "qup10";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c7_default: qup-i2c7-default {
+                               pins = "gpio27", "gpio28";
+                               function = "qup11";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c8_default: qup-i2c8-default {
+                               pins = "gpio19", "gpio20";
+                               function = "qup12";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c10_default: qup-i2c10-default {
+                               pins = "gpio4", "gpio5";
+                               function = "qup14";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
                };
 
                apps_smmu: iommu@15000000 {
                        };
                };
 
+               wifi: wifi@18800000 {
+                       compatible = "qcom,wcn3990-wifi";
+                       reg = <0 0x18800000 0 0x800000>;
+                       reg-names = "membase";
+                       memory-region = <&wlan_fw_mem>;
+                       interrupts = <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
+                       iommus = <&apps_smmu 0x20 0x1>;
+                       qcom,msa-fixed-perm;
+                       status = "disabled";
+               };
+
                apps_rsc: rsc@18200000 {
                        compatible = "qcom,rpmh-rsc";
                        label = "apps_rsc";
                                };
                        };
 
-                       apps_bcm_voter: bcm_voter {
+                       apps_bcm_voter: bcm-voter {
                                compatible = "qcom,bcm-voter";
                        };
                };
index adb6ca2..6192521 100644 (file)
@@ -23,7 +23,7 @@
        qcom,board-id = <8 32>;
 
        aliases {
-               serial0 = &uart2;
+               serial0 = &uart9;
        };
 
        chosen {
        firmware-name = "qcom/sm7225/fairphone4/cdsp.mdt";
 };
 
+&i2c10 {
+       status = "okay";
+       clock-frequency = <400000>;
+
+       haptics@5a {
+               compatible = "awinic,aw8695";
+               reg = <0x5a>;
+               interrupts-extended = <&tlmm 85 IRQ_TYPE_EDGE_FALLING>;
+               reset-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+
+               awinic,f0-preset = <2350>;
+               awinic,f0-coefficient = <260>;
+               awinic,f0-calibration-percent = <7>;
+               awinic,drive-level = <125>;
+
+               awinic,f0-detection-play-time = <5>;
+               awinic,f0-detection-wait-time = <3>;
+               awinic,f0-detection-repeat = <2>;
+               awinic,f0-detection-trace = <15>;
+
+               awinic,boost-debug = /bits/ 8 <0x30 0xeb 0xd4>;
+               awinic,tset = /bits/ 8 <0x12>;
+               awinic,r-spare = /bits/ 8 <0x68>;
+
+               awinic,bemf-upper-threshold = <4104>;
+               awinic,bemf-lower-threshold = <1016>;
+       };
+};
+
 &mpss {
        status = "okay";
        firmware-name = "qcom/sm7225/fairphone4/modem.mdt";
        gpio-reserved-ranges = <13 4>, <56 2>;
 };
 
-&uart2 {
+&uart9 {
        status = "okay";
 };
 
+&ufs_mem_hc {
+       status = "okay";
+
+       reset-gpios = <&tlmm 156 GPIO_ACTIVE_LOW>;
+
+       vcc-supply = <&vreg_l7e>;
+       vcc-max-microamp = <800000>;
+       vccq2-supply = <&vreg_l12a>;
+       vccq2-max-microamp = <800000>;
+};
+
+&ufs_mem_phy {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l18a>;
+       vdda-pll-supply = <&vreg_l22a>;
+};
+
 &usb_1 {
        status = "okay";
 };
        vdda-phy-supply = <&vreg_l22a>;
        vdda-pll-supply = <&vreg_l16a>;
 };
+
+&wifi {
+       status = "okay";
+
+       vdd-0.8-cx-mx-supply = <&vreg_l4a>;
+       vdd-1.8-xo-supply = <&vreg_l7a>;
+       vdd-1.3-rfa-supply = <&vreg_l2e>;
+       vdd-3.3-ch0-supply = <&vreg_l10e>;
+       vdd-3.3-ch1-supply = <&vreg_l11e>;
+};
index 15f3bf2..f70ae4c 100644 (file)
                        status = "disabled";
                };
 
+               ethernet: ethernet@20000 {
+                       compatible = "qcom,sm8150-ethqos";
+                       reg = <0x0 0x00020000 0x0 0x10000>,
+                             <0x0 0x00036000 0x0 0x100>;
+                       reg-names = "stmmaceth", "rgmii";
+                       clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
+                       clocks = <&gcc GCC_EMAC_AXI_CLK>,
+                               <&gcc GCC_EMAC_SLV_AHB_CLK>,
+                               <&gcc GCC_EMAC_PTP_CLK>,
+                               <&gcc GCC_EMAC_RGMII_CLK>;
+                       interrupts = <GIC_SPI 689 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 699 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq", "eth_lpi";
+
+                       power-domains = <&gcc EMAC_GDSC>;
+                       resets = <&gcc GCC_EMAC_BCR>;
+
+                       iommus = <&apps_smmu 0x3C0 0x0>;
+
+                       snps,tso;
+                       rx-fifo-depth = <4096>;
+                       tx-fifo-depth = <4096>;
+
+                       status = "disabled";
+               };
+
+
                qupv3_id_0: geniqup@8c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x008c0000 0x0 0x6000>;
                        interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               pcie0: pci@1c00000 {
+                       compatible = "qcom,pcie-sm8150", "snps,dw-pcie";
+                       reg = <0 0x01c00000 0 0x3000>,
+                             <0 0x60000000 0 0xf1d>,
+                             <0 0x60000f20 0 0xa8>,
+                             <0 0x60001000 0 0x1000>,
+                             <0 0x60100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "atu", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x60300000 0 0x60300000 0x0 0x3d00000>;
+
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                                <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "tbu";
+
+                       iommus = <&apps_smmu 0x1d80 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1d80 0x1>,
+                                   <0x100 &apps_smmu 0x1d81 0x1>;
+
+                       resets = <&gcc GCC_PCIE_0_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_0_GDSC>;
+
+                       phys = <&pcie0_lane>;
+                       phy-names = "pciephy";
+
+                       perst-gpio = <&tlmm 35 GPIO_ACTIVE_HIGH>;
+                       enable-gpio = <&tlmm 37 GPIO_ACTIVE_HIGH>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pcie0_default_state>;
+
+                       status = "disabled";
+               };
+
+               pcie0_phy: phy@1c06000 {
+                       compatible = "qcom,sm8150-qmp-gen3x1-pcie-phy";
+                       reg = <0 0x01c06000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE0_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "refgen";
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE0_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie0_lane: phy@1c06200 {
+                               reg = <0 0x1c06200 0 0x170>, /* tx */
+                                     <0 0x1c06400 0 0x200>, /* rx */
+                                     <0 0x1c06800 0 0x1f0>, /* pcs */
+                                     <0 0x1c06c00 0 0xf4>; /* "pcs_lane" same as pcs_misc? */
+                               clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_0_pipe_clk";
+                       };
+               };
+
+               pcie1: pci@1c08000 {
+                       compatible = "qcom,pcie-sm8150", "snps,dw-pcie";
+                       reg = <0 0x01c08000 0 0x3000>,
+                             <0 0x40000000 0 0xf1d>,
+                             <0 0x40000f20 0 0xa8>,
+                             <0 0x40001000 0 0x1000>,
+                             <0 0x40100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "atu", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <1>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <2>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x40200000 0x0 0x40200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>;
+
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
+                                <&gcc GCC_PCIE_1_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_TBU_CLK>;
+                       clock-names = "pipe",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "tbu";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_AUX_CLK>;
+                       assigned-clock-rates = <19200000>;
+
+                       iommus = <&apps_smmu 0x1e00 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1e00 0x1>,
+                                   <0x100 &apps_smmu 0x1e01 0x1>;
+
+                       resets = <&gcc GCC_PCIE_1_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_1_GDSC>;
+
+                       phys = <&pcie1_lane>;
+                       phy-names = "pciephy";
+
+                       perst-gpio = <&tlmm 102 GPIO_ACTIVE_HIGH>;
+                       enable-gpio = <&tlmm 104 GPIO_ACTIVE_HIGH>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pcie1_default_state>;
+
+                       status = "disabled";
+               };
+
+               pcie1_phy: phy@1c0e000 {
+                       compatible = "qcom,sm8150-qmp-gen3x2-pcie-phy";
+                       reg = <0 0x01c0e000 0 0x1c0>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE1_PHY_REFGEN_CLK>;
+                       clock-names = "aux", "cfg_ahb", "refgen";
+
+                       resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE1_PHY_REFGEN_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie1_lane: phy@1c0e200 {
+                               reg = <0 0x1c0e200 0 0x170>, /* tx0 */
+                                     <0 0x1c0e400 0 0x200>, /* rx0 */
+                                     <0 0x1c0ea00 0 0x1f0>, /* pcs */
+                                     <0 0x1c0e600 0 0x170>, /* tx1 */
+                                     <0 0x1c0e800 0 0x200>, /* rx1 */
+                                     <0 0x1c0ee00 0 0xf4>; /* "pcs_com" same as pcs_misc? */
+                               clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_1_pipe_clk";
+                       };
+               };
+
                ufs_mem_hc: ufshc@1d84000 {
                        compatible = "qcom,sm8150-ufshc", "qcom,ufshc",
                                     "jedec,ufs-2.0";
                        clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
                                 <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
 
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
                        status = "disabled";
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
+                       wakeup-parent = <&pdc>;
 
                        qup_i2c0_default: qup-i2c0-default {
                                mux {
                                drive-strength = <6>;
                                bias-disable;
                        };
+
+                       pcie0_default_state: pcie0-default {
+                               perst {
+                                       pins = "gpio35";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               clkreq {
+                                       pins = "gpio36";
+                                       function = "pci_e0";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               wake {
+                                       pins = "gpio37";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       pcie1_default_state: pcie1-default {
+                               perst {
+                                       pins = "gpio102";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               clkreq {
+                                       pins = "gpio103";
+                                       function = "pci_e1";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               wake {
+                                       pins = "gpio104";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
                };
 
                remoteproc_mpss: remoteproc@4080000 {
                        };
                };
 
+               sdhc_2: sdhci@8804000 {
+                       compatible = "qcom,sm8150-sdhci", "qcom,sdhci-msm-v5";
+                       reg = <0 0x08804000 0 0x1000>;
+
+                       interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 222 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hc_irq", "pwr_irq";
+
+                       clocks = <&gcc GCC_SDCC2_AHB_CLK>,
+                                <&gcc GCC_SDCC2_APPS_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "iface", "core", "xo";
+                       iommus = <&apps_smmu 0x6a0 0x0>;
+                       qcom,dll-config = <0x0007642c>;
+                       qcom,ddr-config = <0x80040868>;
+                       power-domains = <&rpmhpd 0>;
+                       operating-points-v2 = <&sdhc2_opp_table>;
+
+                       status = "disabled";
+
+                       sdhc2_opp_table: sdhc2-opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-19200000 {
+                                       opp-hz = /bits/ 64 <19200000>;
+                                       required-opps = <&rpmhpd_opp_min_svs>;
+                               };
+
+                               opp-50000000 {
+                                       opp-hz = /bits/ 64 <50000000>;
+                                       required-opps = <&rpmhpd_opp_low_svs>;
+                               };
+
+                               opp-100000000 {
+                                       opp-hz = /bits/ 64 <100000000>;
+                                       required-opps = <&rpmhpd_opp_svs>;
+                               };
+
+                               opp-202000000 {
+                                       opp-hz = /bits/ 64 <202000000>;
+                                       required-opps = <&rpmhpd_opp_svs_l1>;
+                               };
+                       };
+               };
+
                dc_noc: interconnect@9160000 {
                        compatible = "qcom,sm8150-dc-noc";
                        reg = <0 0x09160000 0 0x3200>;
                        qcom,bcm-voters = <&apps_bcm_voter>;
                };
 
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,sm8150-pdc", "qcom,pdc";
+                       reg = <0 0x0b220000 0 0x400>;
+                       qcom,pdc-ranges = <0 480 94>, <94 609 31>,
+                                         <125 63 1>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
                aoss_qmp: power-controller@c300000 {
                        compatible = "qcom,sm8150-aoss-qmp";
                        reg = <0x0 0x0c300000 0x0 0x400>;
                                };
                        };
 
-                       apps_bcm_voter: bcm_voter {
+                       apps_bcm_voter: bcm-voter {
                                compatible = "qcom,bcm-voter";
                        };
                };
index d63f7a9..e819b5b 100644 (file)
        status = "okay";
        clock-frequency = <1000000>;
 
-       /* Dual Cirrus Logic CS35L41 amps @ 40, 41 */
+       cs35l41_l: cs35l41@40 {
+               compatible = "cirrus,cs35l41";
+               reg = <0x40>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+               cirrus,boost-peak-milliamp = <4000>;
+               cirrus,boost-ind-nanohenry = <1000>;
+               cirrus,boost-cap-microfarad = <15>;
+               cirrus,asp-sdout-hiz = <3>;
+               cirrus,gpio2-src-select = <2>;
+               cirrus,gpio2-output-enable;
+               #sound-dai-cells = <1>;
+       };
+
+       cs35l41_r: cs35l41@41 {
+               compatible = "cirrus,cs35l41";
+               reg = <0x41>;
+               interrupt-parent = <&tlmm>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 10 GPIO_ACTIVE_HIGH>;
+               cirrus,boost-peak-milliamp = <4000>;
+               cirrus,boost-ind-nanohenry = <1000>;
+               cirrus,boost-cap-microfarad = <15>;
+               cirrus,asp-sdout-hiz = <3>;
+               cirrus,gpio2-src-select = <2>;
+               cirrus,gpio2-output-enable;
+               #sound-dai-cells = <1>;
+       };
 };
 
 &i2c5 {
index 1304b86..dc25620 100644 (file)
@@ -18,6 +18,7 @@
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
 #include <dt-bindings/sound/qcom,q6afe.h>
 #include <dt-bindings/thermal/thermal.h>
+#include <dt-bindings/clock/qcom,camcc-sm8250.h>
 #include <dt-bindings/clock/qcom,videocc-sm8250.h>
 
 / {
                        #power-domain-cells = <1>;
                };
 
+               cci0: cci@ac4f000 {
+                       compatible = "qcom,sm8250-cci";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       reg = <0 0x0ac4f000 0 0x1000>;
+                       interrupts = <GIC_SPI 460 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc TITAN_TOP_GDSC>;
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK>,
+                                <&camcc CAM_CC_CCI_0_CLK_SRC>;
+                       clock-names = "camnoc_axi",
+                                     "slow_ahb_src",
+                                     "cpas_ahb",
+                                     "cci",
+                                     "cci_src";
+
+                       pinctrl-0 = <&cci0_default>;
+                       pinctrl-1 = <&cci0_sleep>;
+                       pinctrl-names = "default", "sleep";
+
+                       status = "disabled";
+
+                       cci0_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci0_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               cci1: cci@ac50000 {
+                       compatible = "qcom,sm8250-cci";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       reg = <0 0x0ac50000 0 0x1000>;
+                       interrupts = <GIC_SPI 271 IRQ_TYPE_EDGE_RISING>;
+                       power-domains = <&camcc TITAN_TOP_GDSC>;
+
+                       clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK>,
+                                <&camcc CAM_CC_CCI_1_CLK_SRC>;
+                       clock-names = "camnoc_axi",
+                                     "slow_ahb_src",
+                                     "cpas_ahb",
+                                     "cci",
+                                     "cci_src";
+
+                       pinctrl-0 = <&cci1_default>;
+                       pinctrl-1 = <&cci1_sleep>;
+                       pinctrl-names = "default", "sleep";
+
+                       status = "disabled";
+
+                       cci1_i2c0: i2c-bus@0 {
+                               reg = <0>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+
+                       cci1_i2c1: i2c-bus@1 {
+                               reg = <1>;
+                               clock-frequency = <1000000>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                       };
+               };
+
+               camss: camss@ac6a000 {
+                       compatible = "qcom,sm8250-camss";
+                       status = "disabled";
+
+                       reg = <0 0xac6a000 0 0x2000>,
+                             <0 0xac6c000 0 0x2000>,
+                             <0 0xac6e000 0 0x1000>,
+                             <0 0xac70000 0 0x1000>,
+                             <0 0xac72000 0 0x1000>,
+                             <0 0xac74000 0 0x1000>,
+                             <0 0xacb4000 0 0xd000>,
+                             <0 0xacc3000 0 0xd000>,
+                             <0 0xacd9000 0 0x2200>,
+                             <0 0xacdb200 0 0x2200>;
+                       reg-names = "csiphy0",
+                                   "csiphy1",
+                                   "csiphy2",
+                                   "csiphy3",
+                                   "csiphy4",
+                                   "csiphy5",
+                                   "vfe0",
+                                   "vfe1",
+                                   "vfe_lite0",
+                                   "vfe_lite1";
+
+                       interrupts = <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 478 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 479 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "csiphy0",
+                                         "csiphy1",
+                                         "csiphy2",
+                                         "csiphy3",
+                                         "csiphy4",
+                                         "csiphy5",
+                                         "csid0",
+                                         "csid1",
+                                         "csid2",
+                                         "csid3",
+                                         "vfe0",
+                                         "vfe1",
+                                         "vfe_lite0",
+                                         "vfe_lite1";
+
+                       power-domains = <&camcc IFE_0_GDSC>,
+                                       <&camcc IFE_1_GDSC>,
+                                       <&camcc TITAN_TOP_GDSC>;
+
+                       clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+                                <&gcc GCC_CAMERA_HF_AXI_CLK>,
+                                <&gcc GCC_CAMERA_SF_AXI_CLK>,
+                                <&camcc CAM_CC_CAMNOC_AXI_CLK>,
+                                <&camcc CAM_CC_CAMNOC_AXI_CLK_SRC>,
+                                <&camcc CAM_CC_CORE_AHB_CLK>,
+                                <&camcc CAM_CC_CPAS_AHB_CLK>,
+                                <&camcc CAM_CC_CSIPHY0_CLK>,
+                                <&camcc CAM_CC_CSI0PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY1_CLK>,
+                                <&camcc CAM_CC_CSI1PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY2_CLK>,
+                                <&camcc CAM_CC_CSI2PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY3_CLK>,
+                                <&camcc CAM_CC_CSI3PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY4_CLK>,
+                                <&camcc CAM_CC_CSI4PHYTIMER_CLK>,
+                                <&camcc CAM_CC_CSIPHY5_CLK>,
+                                <&camcc CAM_CC_CSI5PHYTIMER_CLK>,
+                                <&camcc CAM_CC_SLOW_AHB_CLK_SRC>,
+                                <&camcc CAM_CC_IFE_0_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_0_AXI_CLK>,
+                                <&camcc CAM_CC_IFE_0_CLK>,
+                                <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>,
+                                <&camcc CAM_CC_IFE_0_CSID_CLK>,
+                                <&camcc CAM_CC_IFE_0_AREG_CLK>,
+                                <&camcc CAM_CC_IFE_1_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_1_AXI_CLK>,
+                                <&camcc CAM_CC_IFE_1_CLK>,
+                                <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>,
+                                <&camcc CAM_CC_IFE_1_CSID_CLK>,
+                                <&camcc CAM_CC_IFE_1_AREG_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_AHB_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_AXI_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>,
+                                <&camcc CAM_CC_IFE_LITE_CSID_CLK>;
+
+                       clock-names = "cam_ahb_clk",
+                                     "cam_hf_axi",
+                                     "cam_sf_axi",
+                                     "camnoc_axi",
+                                     "camnoc_axi_src",
+                                     "core_ahb",
+                                     "cpas_ahb",
+                                     "csiphy0",
+                                     "csiphy0_timer",
+                                     "csiphy1",
+                                     "csiphy1_timer",
+                                     "csiphy2",
+                                     "csiphy2_timer",
+                                     "csiphy3",
+                                     "csiphy3_timer",
+                                     "csiphy4",
+                                     "csiphy4_timer",
+                                     "csiphy5",
+                                     "csiphy5_timer",
+                                     "slow_ahb_src",
+                                     "vfe0_ahb",
+                                     "vfe0_axi",
+                                     "vfe0",
+                                     "vfe0_cphy_rx",
+                                     "vfe0_csid",
+                                     "vfe0_areg",
+                                     "vfe1_ahb",
+                                     "vfe1_axi",
+                                     "vfe1",
+                                     "vfe1_cphy_rx",
+                                     "vfe1_csid",
+                                     "vfe1_areg",
+                                     "vfe_lite_ahb",
+                                     "vfe_lite_axi",
+                                     "vfe_lite",
+                                     "vfe_lite_cphy_rx",
+                                     "vfe_lite_csid";
+
+                       iommus = <&apps_smmu 0x800 0x400>,
+                                <&apps_smmu 0x801 0x400>,
+                                <&apps_smmu 0x840 0x400>,
+                                <&apps_smmu 0x841 0x400>,
+                                <&apps_smmu 0xc00 0x400>,
+                                <&apps_smmu 0xc01 0x400>,
+                                <&apps_smmu 0xc40 0x400>,
+                                <&apps_smmu 0xc41 0x400>;
+
+                       interconnects = <&gem_noc MASTER_AMPSS_M0 &config_noc SLAVE_CAMERA_CFG>,
+                                       <&mmss_noc MASTER_CAMNOC_HF &mc_virt SLAVE_EBI_CH0>,
+                                       <&mmss_noc MASTER_CAMNOC_SF &mc_virt SLAVE_EBI_CH0>,
+                                       <&mmss_noc MASTER_CAMNOC_ICP &mc_virt SLAVE_EBI_CH0>;
+                       interconnect-names = "cam_ahb",
+                                            "cam_hf_0_mnoc",
+                                            "cam_sf_0_mnoc",
+                                            "cam_sf_icp_mnoc";
+               };
+
+               camcc: clock-controller@ad00000 {
+                       compatible = "qcom,sm8250-camcc";
+                       reg = <0 0x0ad00000 0 0x10000>;
+                       clocks = <&gcc GCC_CAMERA_AHB_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK_A>,
+                                <&sleep_clk>;
+                       clock-names = "iface", "bi_tcxo", "bi_tcxo_ao", "sleep_clk";
+                       power-domains = <&rpmhpd SM8250_MMCX>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <1>;
+               };
+
                mdss: mdss@ae00000 {
                        compatible = "qcom,sm8250-mdss";
                        reg = <0 0x0ae00000 0 0x1000>;
                                power-domains = <&rpmhpd SM8250_MMCX>;
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <0>;
 
                                ports {
                                        #address-cells = <1>;
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <4>;
 
                                clocks = <&dispcc DISP_CC_MDSS_BYTE0_CLK>,
                                         <&dispcc DISP_CC_MDSS_BYTE0_INTF_CLK>,
                                reg-names = "dsi_ctrl";
 
                                interrupt-parent = <&mdss>;
-                               interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <5>;
 
                                clocks = <&dispcc DISP_CC_MDSS_BYTE1_CLK>,
                                         <&dispcc DISP_CC_MDSS_BYTE1_INTF_CLK>,
                        gpio-ranges = <&tlmm 0 0 181>;
                        wakeup-parent = <&pdc>;
 
+                       cci0_default: cci0-default {
+                               cci0_i2c0_default: cci0-i2c0-default {
+                                       /* SDA, SCL */
+                                       pins = "gpio101", "gpio102";
+                                       function = "cci_i2c";
+
+                                       bias-pull-up;
+                                       drive-strength = <2>; /* 2 mA */
+                               };
+
+                               cci0_i2c1_default: cci0-i2c1-default {
+                                       /* SDA, SCL */
+                                       pins = "gpio103", "gpio104";
+                                       function = "cci_i2c";
+
+                                       bias-pull-up;
+                                       drive-strength = <2>; /* 2 mA */
+                               };
+                       };
+
+                       cci0_sleep: cci0-sleep {
+                               cci0_i2c0_sleep: cci0-i2c0-sleep {
+                                       /* SDA, SCL */
+                                       pins = "gpio101", "gpio102";
+                                       function = "cci_i2c";
+
+                                       drive-strength = <2>; /* 2 mA */
+                                       bias-pull-down;
+                               };
+
+                               cci0_i2c1_sleep: cci0-i2c1-sleep {
+                                       /* SDA, SCL */
+                                       pins = "gpio103", "gpio104";
+                                       function = "cci_i2c";
+
+                                       drive-strength = <2>; /* 2 mA */
+                                       bias-pull-down;
+                               };
+                       };
+
+                       cci1_default: cci1-default {
+                               cci1_i2c0_default: cci1-i2c0-default {
+                                       /* SDA, SCL */
+                                       pins = "gpio105","gpio106";
+                                       function = "cci_i2c";
+
+                                       bias-pull-up;
+                                       drive-strength = <2>; /* 2 mA */
+                               };
+
+                               cci1_i2c1_default: cci1-i2c1-default {
+                                       /* SDA, SCL */
+                                       pins = "gpio107","gpio108";
+                                       function = "cci_i2c";
+
+                                       bias-pull-up;
+                                       drive-strength = <2>; /* 2 mA */
+                               };
+                       };
+
+                       cci1_sleep: cci1-sleep {
+                               cci1_i2c0_sleep: cci1-i2c0-sleep {
+                                       /* SDA, SCL */
+                                       pins = "gpio105","gpio106";
+                                       function = "cci_i2c";
+
+                                       bias-pull-down;
+                                       drive-strength = <2>; /* 2 mA */
+                               };
+
+                               cci1_i2c1_sleep: cci1-i2c1-sleep {
+                                       /* SDA, SCL */
+                                       pins = "gpio107","gpio108";
+                                       function = "cci_i2c";
+
+                                       bias-pull-down;
+                                       drive-strength = <2>; /* 2 mA */
+                               };
+                       };
+
                        pri_mi2s_active: pri-mi2s-active {
                                sclk {
                                        pins = "gpio138";
                                };
                        };
 
-                       apps_bcm_voter: bcm_voter {
+                       apps_bcm_voter: bcm-voter {
                                compatible = "qcom,bcm-voter";
                        };
                };
index 1e5e940..0fcf5bd 100644 (file)
        firmware-name = "qcom/sm8350/cdsp.mbn";
 };
 
+&gpi_dma1 {
+       status = "okay";
+};
+
 &mpss {
        status = "okay";
        firmware-name = "qcom/sm8350/modem.mbn";
index 9cb1d84..9a6faa9 100644 (file)
        firmware-name = "qcom/sm8350/microsoft/cdsp.mbn";
 };
 
+&i2c10 {
+       status = "okay";
+};
+
+&i2c11 {
+       status = "okay";
+};
+
 &ipa {
        status = "okay";
 
        status = "okay";
 };
 
+&qupv3_id_1 {
+       status = "okay";
+};
+
 &slpi {
        status = "okay";
        firmware-name = "qcom/sm8350/microsoft/slpi.mbn";
index 20f850b..c0137bd 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-sm8350.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interconnect/qcom,sm8350.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
                        };
                };
 
+               gpi_dma2: dma-controller@800000 {
+                       compatible = "qcom,sm8350-gpi-dma";
+                       reg = <0 0x00800000 0 0x60000>;
+                       interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0xff>;
+                       iommus = <&apps_smmu 0x5f6 0x0>;
+                       #dma-cells = <3>;
+                       status = "disabled";
+               };
+
                qupv3_id_2: geniqup@8c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x008c0000 0x0 0x6000>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c14_default>;
                                interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_120mhz>;
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c15_default>;
                                interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_120mhz>;
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c16_default>;
                                interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c17_default>;
                                interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c19_default>;
                                interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
                };
 
+               gpi_dma0: dma-controller@900000 {
+                       compatible = "qcom,sm8350-gpi-dma";
+                       reg = <0 0x09800000 0 0x60000>;
+                       interrupts = <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>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x7e>;
+                       iommus = <&apps_smmu 0x5b6 0x0>;
+                       #dma-cells = <3>;
+                       status = "disabled";
+               };
+
                qupv3_id_0: geniqup@9c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x009c0000 0x0 0x6000>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c0_default>;
                                interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c1_default>;
                                interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c2_default>;
                                interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c4_default>;
                                interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c5_default>;
                                interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c6_default>;
                                interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c7_default>;
                                interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 7 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma0 0 7 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 7 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
                };
 
+               gpi_dma1: dma-controller@a00000 {
+                       compatible = "qcom,sm8350-gpi-dma";
+                       reg = <0 0x00a00000 0 0x60000>;
+                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0xff>;
+                       iommus = <&apps_smmu 0x56 0x0>;
+                       #dma-cells = <3>;
+                       status = "disabled";
+               };
+
                qupv3_id_1: geniqup@ac0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0x0 0x00ac0000 0x0 0x6000>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c8_default>;
                                interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_120mhz>;
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c9_default>;
                                interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c10_default>;
                                interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c11_default>;
                                interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c12_default>;
                                interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                pinctrl-names = "default";
                                pinctrl-0 = <&qup_i2c13_default>;
                                interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
                                power-domains = <&rpmhpd SM8350_CX>;
                                operating-points-v2 = <&qup_opp_table_100mhz>;
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                                };
                        };
 
-                       apps_bcm_voter: bcm_voter {
+                       apps_bcm_voter: bcm-voter {
                                compatible = "qcom,bcm-voter";
                        };
                };
                        iommus = <&apps_smmu 0xe0 0x0>;
 
                        clock-names =
-                               "ref_clk",
                                "core_clk",
                                "bus_aggr_clk",
                                "iface_clk",
                                "rx_lane0_sync_clk",
                                "rx_lane1_sync_clk";
                        clocks =
-                               <&rpmhcc RPMH_CXO_CLK>,
                                <&gcc GCC_UFS_PHY_AXI_CLK>,
                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
                                <&gcc GCC_UFS_PHY_AHB_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
                        freq-table-hz =
                                <75000000 300000000>,
-                               <75000000 300000000>,
                                <0 0>,
                                <0 0>,
                                <75000000 300000000>,
index f0fcb14..4e51a9d 100644 (file)
        };
 };
 
+&pcie0 {
+       status = "okay";
+       max-link-speed = <2>;
+};
+
+&pcie0_phy {
+       status = "okay";
+       vdda-phy-supply = <&vreg_l5b_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+};
+
+&pcie1 {
+       status = "okay";
+};
+
+&pcie1_phy {
+       status = "okay";
+       vdda-phy-supply = <&vreg_l2h_0p91>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+};
+
+&remoteproc_adsp {
+       status = "okay";
+       firmware-name = "qcom/sm8450/adsp.mbn";
+};
+
+&remoteproc_cdsp {
+       status = "okay";
+       firmware-name = "qcom/sm8450/cdsp.mbn";
+};
+
+&remoteproc_mpss {
+       status = "okay";
+       firmware-name = "qcom/sm8450/modem.mbn";
+};
+
+&remoteproc_slpi {
+       status = "okay";
+       firmware-name = "qcom/sm8450/slpi.mbn";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
index 9526632..236e539 100644 (file)
        };
 };
 
+&pcie0 {
+       status = "okay";
+};
+
+&pcie0_phy {
+       status = "okay";
+       vdda-phy-supply = <&vreg_l5b_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+};
+
+&gpi_dma0 {
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&qupv3_id_2 {
+       status = "okay";
+};
+
 &remoteproc_adsp {
        status = "okay";
        firmware-name = "qcom/sm8450/adsp.mbn";
        firmware-name = "qcom/sm8450/slpi.mbn";
 };
 
+&spi4 {
+       status = "okay";
+};
+
+&spi18 {
+       status = "okay";
+};
+
+&spi19 {
+       status = "okay";
+};
+
 &tlmm {
        gpio-reserved-ranges = <28 4>, <36 4>;
 };
index 934e29b..7f52c3c 100644 (file)
@@ -6,11 +6,13 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/qcom,gcc-sm8450.h>
 #include <dt-bindings/clock/qcom,rpmh.h>
+#include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/interconnect/qcom,sm8450.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        interrupt-parent = <&intc>;
@@ -47,6 +49,7 @@
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       #cooling-cells = <2>;
                        L2_0: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
@@ -65,6 +68,7 @@
                        power-domains = <&CPU_PD1>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       #cooling-cells = <2>;
                        L2_100: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
@@ -80,6 +84,7 @@
                        power-domains = <&CPU_PD2>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       #cooling-cells = <2>;
                        L2_200: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
                        power-domains = <&CPU_PD3>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 0>;
+                       #cooling-cells = <2>;
                        L2_300: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
                        power-domains = <&CPU_PD4>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       #cooling-cells = <2>;
                        L2_400: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
                        power-domains = <&CPU_PD5>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       #cooling-cells = <2>;
                        L2_500: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
                        power-domains = <&CPU_PD6>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 1>;
+                       #cooling-cells = <2>;
                        L2_600: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
                        power-domains = <&CPU_PD7>;
                        power-domain-names = "psci";
                        qcom,freq-domain = <&cpufreq_hw 2>;
+                       #cooling-cells = <2>;
                        L2_700: l2-cache {
                              compatible = "cache";
                              next-level-cache = <&L3_0>;
                };
        };
 
+       qup_opp_table_100mhz: qup-100mhz-opp-table {
+               compatible = "operating-points-v2";
+
+               opp-50000000 {
+                       opp-hz = /bits/ 64 <50000000>;
+                       required-opps = <&rpmhpd_opp_min_svs>;
+               };
+
+               opp-75000000 {
+                       opp-hz = /bits/ 64 <75000000>;
+                       required-opps = <&rpmhpd_opp_low_svs>;
+               };
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       required-opps = <&rpmhpd_opp_svs>;
+               };
+       };
+
        reserved_memory: reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
                        #clock-cells = <1>;
                        #reset-cells = <1>;
                        #power-domain-cells = <1>;
-                       clock-names = "bi_tcxo", "sleep_clk";
-                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&sleep_clk>;
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&pcie0_lane>,
+                                <&pcie1_lane>,
+                                <&sleep_clk>;
+                       clock-names = "bi_tcxo",
+                                     "pcie_0_pipe_clk",
+                                     "pcie_1_pipe_clk",
+                                     "sleep_clk";
+               };
+
+               gpi_dma2: dma-controller@800000 {
+                       compatible = "qcom,sm8450-gpi-dma";
+                       #dma-cells = <3>;
+                       reg = <0 0x800000 0 0x60000>;
+                       interrupts = <GIC_SPI 588 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 589 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 590 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 591 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 592 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 593 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 594 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 595 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 596 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 597 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 598 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 599 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x7e>;
+                       iommus = <&apps_smmu 0x496 0x0>;
+                       status = "disabled";
                };
 
-               qupv3_id_0: geniqup@9c0000 {
+               qupv3_id_2: geniqup@8c0000 {
                        compatible = "qcom,geni-se-qup";
-                       reg = <0x0 0x009c0000 0x0 0x2000>;
+                       reg = <0x0 0x008c0000 0x0 0x2000>;
                        clock-names = "m-ahb", "s-ahb";
-                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
-                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x483 0x0>;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
                        status = "disabled";
 
-                       uart7: serial@99c000 {
-                               compatible = "qcom,geni-debug-uart";
-                               reg = <0 0x0099c000 0 0x4000>;
+                       i2c15: i2c@880000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00880000 0x0 0x4000>;
                                clock-names = "se";
-                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
                                pinctrl-names = "default";
-                               pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>;
-                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-0 = <&qup_i2c15_data_clk>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
-               };
 
-               qupv3_id_1: geniqup@ac0000 {
-                       compatible = "qcom,geni-se-qup";
-                       reg = <0x0 0x00ac0000 0x0 0x6000>;
-                       clock-names = "m-ahb", "s-ahb";
-                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
-                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
-                       status = "disabled";
+                       spi15: spi@880000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00880000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S0_CLK>;
+                               interrupts = <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi15_data_clk>, <&qup_spi15_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       i2c13: i2c@a94000 {
+                       i2c16: i2c@884000 {
                                compatible = "qcom,geni-i2c";
-                               reg = <0 0x00a94000 0 0x4000>;
+                               reg = <0x0 0x00884000 0x0 0x4000>;
                                clock-names = "se";
-                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
                                pinctrl-names = "default";
-                               pinctrl-0 = <&qup_i2c13_data_clk>;
-                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-0 = <&qup_i2c16_data_clk>;
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
-                       i2c14: i2c@a98000 {
-                               compatible = "qcom,geni-i2c";
-                               reg = <0 0x00a98000 0 0x4000>;
+                       spi16: spi@884000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00884000 0x0 0x4000>;
                                clock-names = "se";
-                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S1_CLK>;
+                               interrupts = <GIC_SPI 583 IRQ_TYPE_LEVEL_HIGH>;
                                pinctrl-names = "default";
-                               pinctrl-0 = <&qup_i2c14_data_clk>;
-                               interrupts = <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-0 = <&qup_spi16_data_clk>, <&qup_spi16_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
                                #address-cells = <1>;
                                #size-cells = <0>;
                                status = "disabled";
                        };
-               };
 
-               config_noc: interconnect@1500000 {
-                       compatible = "qcom,sm8450-config-noc";
-                       reg = <0 0x01500000 0 0x1c000>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
+                       i2c17: i2c@888000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00888000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c17_data_clk>;
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-               system_noc: interconnect@1680000 {
-                       compatible = "qcom,sm8450-system-noc";
-                       reg = <0 0x01680000 0 0x1e200>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
+                       spi17: spi@888000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00888000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S2_CLK>;
+                               interrupts = <GIC_SPI 584 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi17_data_clk>, <&qup_spi17_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-               pcie_noc: interconnect@16c0000 {
-                       compatible = "qcom,sm8450-pcie-anoc";
-                       reg = <0 0x016c0000 0 0xe280>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
+                       i2c18: i2c@88c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x0088c000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c18_data_clk>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-               aggre1_noc: interconnect@16e0000 {
-                       compatible = "qcom,sm8450-aggre1-noc";
-                       reg = <0 0x016e0000 0 0x1c080>;
-                       #interconnect-cells = <2>;
-                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
-                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
+                       spi18: spi@88c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x0088c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S3_CLK>;
+                               interrupts = <GIC_SPI 585 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi18_data_clk>, <&qup_spi18_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-               aggre2_noc: interconnect@1700000 {
-                       compatible = "qcom,sm8450-aggre2-noc";
-                       reg = <0 0x01700000 0 0x31080>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-                       clocks = <&gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>,
-                                <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>,
-                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
-                                <&rpmhcc RPMH_IPA_CLK>;
-               };
+                       i2c19: i2c@890000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00890000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c19_data_clk>;
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-               mmss_noc: interconnect@1740000 {
-                       compatible = "qcom,sm8450-mmss-noc";
-                       reg = <0 0x01740000 0 0x1f080>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
-               };
+                       spi19: spi@890000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00890000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S4_CLK>;
+                               interrupts = <GIC_SPI 586 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi19_data_clk>, <&qup_spi19_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-               tcsr_mutex: hwlock@1f40000 {
-                       compatible = "qcom,tcsr-mutex";
-                       reg = <0x0 0x01f40000 0x0 0x40000>;
-                       #hwlock-cells = <1>;
-               };
+                       i2c20: i2c@894000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00894000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c20_data_clk>;
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-               usb_1_hsphy: phy@88e3000 {
-                       compatible = "qcom,sm8450-usb-hs-phy",
-                                    "qcom,usb-snps-hs-7nm-phy";
-                       reg = <0 0x088e3000 0 0x400>;
-                       status = "disabled";
-                       #phy-cells = <0>;
+                       spi20: spi@894000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00894000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S5_CLK>;
+                               interrupts = <GIC_SPI 587 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi20_data_clk>, <&qup_spi20_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       clocks = <&rpmhcc RPMH_CXO_CLK>;
-                       clock-names = "ref";
+                       i2c21: i2c@898000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00898000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c21_data_clk>;
+                               interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_2 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma2 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma2 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+                       spi21: spi@898000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0 0x00898000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP2_S6_CLK>;
+                               interrupts = <GIC_SPI 579 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi21_data_clk>, <&qup_spi21_cs>;
+                               spi-max-frequency = <50000000>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_2 0 &clk_virt SLAVE_QUP_CORE_2 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>;
+                               interconnect-names = "qup-core", "qup-config";
+                               dmas = <&gpi_dma2 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma2 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
-               usb_1_qmpphy: phy-wrapper@88e9000 {
-                       compatible = "qcom,sm8450-qmp-usb3-phy";
-                       reg = <0 0x088e9000 0 0x200>,
-                             <0 0x088e8000 0 0x20>;
+               gpi_dma0: dma-controller@900000 {
+                       compatible = "qcom,sm8450-gpi-dma";
+                       #dma-cells = <3>;
+                       reg = <0 0x900000 0 0x60000>;
+                       interrupts = <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>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x7e>;
+                       iommus = <&apps_smmu 0x5b6 0x0>;
                        status = "disabled";
+               };
+
+               qupv3_id_0: geniqup@9c0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x009c0000 0x0 0x2000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x5a3 0x0>;
+                       interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>;
+                       interconnect-names = "qup-core";
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
+                       status = "disabled";
 
-                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
-                                <&rpmhcc RPMH_CXO_CLK>,
-                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
-                       clock-names = "aux", "ref_clk_src", "com_aux";
+                       i2c0: i2c@980000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00980000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c0_data_clk>;
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
-                                <&gcc GCC_USB3_PHY_PRIM_BCR>;
-                       reset-names = "phy", "common";
+                       spi0: spi@980000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00980000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
+                               interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs>;
+                               power-domains = <&rpmhpd SM8450_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       usb_1_ssphy: phy@88e9200 {
-                               reg = <0 0x088e9200 0 0x200>,
-                                     <0 0x088e9400 0 0x200>,
-                                     <0 0x088e9c00 0 0x400>,
-                                     <0 0x088e9600 0 0x200>,
-                                     <0 0x088e9800 0 0x200>,
-                                     <0 0x088e9a00 0 0x100>;
-                               #phy-cells = <0>;
-                               #clock-cells = <1>;
-                               clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
-                               clock-names = "pipe0";
-                               clock-output-names = "usb3_phy_pipe_clk_src";
+                       i2c1: i2c@984000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00984000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c1_data_clk>;
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
                        };
-               };
 
-               remoteproc_slpi: remoteproc@2400000 {
-                       compatible = "qcom,sm8450-slpi-pas";
-                       reg = <0 0x02400000 0 0x4000>;
+                       spi1: spi@984000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00984000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
+                               interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi1_data_clk>, <&qup_spi1_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       interrupts-extended = <&pdc 9 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&smp2p_slpi_in 0 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_slpi_in 1 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_slpi_in 2 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_slpi_in 3 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "wdog", "fatal", "ready",
-                                         "handover", "stop-ack";
+                       i2c2: i2c@988000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00988000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c2_data_clk>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       clocks = <&rpmhcc RPMH_CXO_CLK>;
-                       clock-names = "xo";
+                       spi2: spi@988000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00988000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
+                               interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       power-domains = <&rpmhpd SM8450_LCX>,
-                                       <&rpmhpd SM8450_LMX>;
-                       power-domain-names = "lcx", "lmx";
 
-                       memory-region = <&slpi_mem>;
+                       i2c3: i2c@98c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x0098c000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c3_data_clk>;
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       qcom,qmp = <&aoss_qmp>;
+                       spi3: spi@98c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x0098c000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
+                               interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi3_data_clk>, <&qup_spi3_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       qcom,smem-states = <&smp2p_slpi_out 0>;
-                       qcom,smem-state-names = "stop";
+                       i2c4: i2c@990000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00990000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c4_data_clk>;
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       status = "disabled";
+                       spi4: spi@990000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00990000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
+                               interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi4_data_clk>, <&qup_spi4_cs>;
+                               power-domains = <&rpmhpd SM8450_CX>;
+                               operating-points-v2 = <&qup_opp_table_100mhz>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       glink-edge {
-                               interrupts-extended = <&ipcc IPCC_CLIENT_SLPI
-                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
-                                                            IRQ_TYPE_EDGE_RISING>;
-                               mboxes = <&ipcc IPCC_CLIENT_SLPI
-                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+                       i2c5: i2c@994000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00994000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c5_data_clk>;
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                               label = "slpi";
-                               qcom,remote-pid = <3>;
+                       spi5: spi@994000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00994000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
+                               interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi5_data_clk>, <&qup_spi5_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
                        };
-               };
 
-               remoteproc_adsp: remoteproc@30000000 {
-                       compatible = "qcom,sm8450-adsp-pas";
-                       reg = <0 0x030000000 0 0x100>;
 
-                       interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "wdog", "fatal", "ready",
-                                         "handover", "stop-ack";
+                       i2c6: i2c@998000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x998000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c6_data_clk>;
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       clocks = <&rpmhcc RPMH_CXO_CLK>;
-                       clock-names = "xo";
+                       spi6: spi@998000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x998000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
+                               interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_0 0 &clk_virt SLAVE_QUP_CORE_0 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_0 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma0 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma0 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       power-domains = <&rpmhpd SM8450_LCX>,
-                                       <&rpmhpd SM8450_LMX>;
-                       power-domain-names = "lcx", "lmx";
+                       uart7: serial@99c000 {
+                               compatible = "qcom,geni-debug-uart";
+                               reg = <0 0x0099c000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_uart7_tx>, <&qup_uart7_rx>;
+                               interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
+               };
 
-                       memory-region = <&adsp_mem>;
+               gpi_dma1: dma-controller@a00000 {
+                       compatible = "qcom,sm8450-gpi-dma";
+                       #dma-cells = <3>;
+                       reg = <0 0xa00000 0 0x60000>;
+                       interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-channels = <12>;
+                       dma-channel-mask = <0x7e>;
+                       iommus = <&apps_smmu 0x56 0x0>;
+                       status = "disabled";
+               };
 
-                       qcom,qmp = <&aoss_qmp>;
+               qupv3_id_1: geniqup@ac0000 {
+                       compatible = "qcom,geni-se-qup";
+                       reg = <0x0 0x00ac0000 0x0 0x6000>;
+                       clock-names = "m-ahb", "s-ahb";
+                       clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
+                                <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
+                       iommus = <&apps_smmu 0x43 0x0>;
+                       interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>;
+                       interconnect-names = "qup-core";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       status = "disabled";
 
-                       qcom,smem-states = <&smp2p_adsp_out 0>;
-                       qcom,smem-state-names = "stop";
+                       i2c8: i2c@a80000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a80000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c8_data_clk>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       status = "disabled";
+                       spi8: spi@a80000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a80000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
+                               interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi8_data_clk>, <&qup_spi8_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 0 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 0 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       remoteproc_adsp_glink: glink-edge {
-                               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
-                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
-                                                            IRQ_TYPE_EDGE_RISING>;
-                               mboxes = <&ipcc IPCC_CLIENT_LPASS
-                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+                       i2c9: i2c@a84000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a84000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c9_data_clk>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                               label = "lpass";
-                               qcom,remote-pid = <2>;
+                       spi9: spi@a84000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a84000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
+                               interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi9_data_clk>, <&qup_spi9_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 1 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 1 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
                        };
-               };
 
-               remoteproc_cdsp: remoteproc@32300000 {
-                       compatible = "qcom,sm8450-cdsp-pas";
-                       reg = <0 0x032300000 0 0x1400000>;
+                       i2c10: i2c@a88000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a88000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c10_data_clk>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "wdog", "fatal", "ready",
-                                         "handover", "stop-ack";
+                       spi10: spi@a88000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a88000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
+                               interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi10_data_clk>, <&qup_spi10_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 2 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 2 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       clocks = <&rpmhcc RPMH_CXO_CLK>;
-                       clock-names = "xo";
+                       i2c11: i2c@a8c000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a8c000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c11_data_clk>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       power-domains = <&rpmhpd SM8450_CX>,
-                                       <&rpmhpd SM8450_MXC>;
-                       power-domain-names = "cx", "mxc";
+                       spi11: spi@a8c000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a8c000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
+                               interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi11_data_clk>, <&qup_spi11_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 3 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 3 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       memory-region = <&cdsp_mem>;
+                       i2c12: i2c@a90000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0x0 0x00a90000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c12_data_clk>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               status = "disabled";
+                       };
 
-                       qcom,qmp = <&aoss_qmp>;
+                       spi12: spi@a90000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a90000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
+                               interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi12_data_clk>, <&qup_spi12_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 4 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 4 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       qcom,smem-states = <&smp2p_cdsp_out 0>;
-                       qcom,smem-state-names = "stop";
+                       i2c13: i2c@a94000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a94000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c13_data_clk>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       status = "disabled";
+                       spi13: spi@a94000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a94000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
+                               interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi13_data_clk>, <&qup_spi13_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 5 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 5 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                       glink-edge {
-                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
-                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
-                                                            IRQ_TYPE_EDGE_RISING>;
-                               mboxes = <&ipcc IPCC_CLIENT_CDSP
-                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+                       i2c14: i2c@a98000 {
+                               compatible = "qcom,geni-i2c";
+                               reg = <0 0x00a98000 0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_i2c14_data_clk>;
+                               interrupts = <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_I2C>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
+                       };
 
-                               label = "cdsp";
-                               qcom,remote-pid = <5>;
+                       spi14: spi@a98000 {
+                               compatible = "qcom,geni-spi";
+                               reg = <0x0 0x00a98000 0x0 0x4000>;
+                               clock-names = "se";
+                               clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
+                               interrupts = <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+                               pinctrl-names = "default";
+                               pinctrl-0 = <&qup_spi14_data_clk>, <&qup_spi14_cs>;
+                               interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>,
+                                               <&system_noc MASTER_A2NOC_SNOC 0 &gem_noc SLAVE_LLCC 0>,
+                                               <&aggre2_noc MASTER_QUP_1 0 &mc_virt SLAVE_EBI1 0>;
+                               interconnect-names = "qup-core", "qup-config", "qup-memory";
+                               dmas = <&gpi_dma1 0 6 QCOM_GPI_SPI>,
+                                      <&gpi_dma1 1 6 QCOM_GPI_SPI>;
+                               dma-names = "tx", "rx";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               status = "disabled";
                        };
                };
 
-               remoteproc_mpss: remoteproc@4080000 {
-                       compatible = "qcom,sm8450-mpss-pas";
-                       reg = <0x0 0x04080000 0x0 0x4040>;
+               pcie0: pci@1c00000 {
+                       compatible = "qcom,pcie-sm8450-pcie0";
+                       reg = <0 0x01c00000 0 0x3000>,
+                             <0 0x60000000 0 0xf1d>,
+                             <0 0x60000f20 0 0xa8>,
+                             <0 0x60001000 0 0x1000>,
+                             <0 0x60100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "atu", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <0>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <1>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
 
-                       interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
-                                             <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "wdog", "fatal", "ready", "handover",
-                                         "stop-ack", "shutdown-ack";
+                       ranges = <0x01000000 0x0 0x60200000 0 0x60200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x60300000 0 0x60300000 0x0 0x3d00000>;
+
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 149 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 0 0 150 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 0 0 151 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 0 0 152 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_0_PIPE_CLK>,
+                                <&gcc GCC_PCIE_0_PIPE_CLK_SRC>,
+                                <&pcie0_lane>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_0_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>;
+                       clock-names = "pipe",
+                                     "pipe_mux",
+                                     "phy_pipe",
+                                     "ref",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ddrss_sf_tbu",
+                                     "aggre0",
+                                     "aggre1";
+
+                       iommus = <&apps_smmu 0x1c00 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1c00 0x1>,
+                                   <0x100 &apps_smmu 0x1c01 0x1>;
+
+                       resets = <&gcc GCC_PCIE_0_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_0_GDSC>;
+                       power-domain-names = "gdsc";
+
+                       phys = <&pcie0_lane>;
+                       phy-names = "pciephy";
+
+                       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+                       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pcie0_default_state>;
+
+                       status = "disabled";
+               };
+
+               pcie0_phy: phy@1c06000 {
+                       compatible = "qcom,sm8450-qmp-gen3x1-pcie-phy";
+                       reg = <0 0x01c06000 0 0x200>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_0_AUX_CLK>,
+                                <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_0_CLKREF_EN>,
+                                <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_0_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_0_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie0_lane: phy@1c06200 {
+                               reg = <0 0x1c06e00 0 0x200>, /* tx */
+                                     <0 0x1c07000 0 0x200>, /* rx */
+                                     <0 0x1c06200 0 0x200>, /* pcs */
+                                     <0 0x1c06600 0 0x200>; /* pcs_pcie */
+                               clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #clock-cells = <0>;
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_0_pipe_clk";
+                       };
+               };
+
+               pcie1: pci@1c08000 {
+                       compatible = "qcom,pcie-sm8450-pcie1";
+                       reg = <0 0x01c08000 0 0x3000>,
+                             <0 0x40000000 0 0xf1d>,
+                             <0 0x40000f20 0 0xa8>,
+                             <0 0x40001000 0 0x1000>,
+                             <0 0x40100000 0 0x100000>;
+                       reg-names = "parf", "dbi", "elbi", "atu", "config";
+                       device_type = "pci";
+                       linux,pci-domain = <1>;
+                       bus-range = <0x00 0xff>;
+                       num-lanes = <2>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+
+                       ranges = <0x01000000 0x0 0x40200000 0 0x40200000 0x0 0x100000>,
+                                <0x02000000 0x0 0x40300000 0 0x40300000 0x0 0x1fd00000>;
+
+                       interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "msi";
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 0x7>;
+                       interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
+                                       <0 0 0 2 &intc 0 0 0 435 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
+                                       <0 0 0 3 &intc 0 0 0 438 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
+                                       <0 0 0 4 &intc 0 0 0 439 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
+
+                       clocks = <&gcc GCC_PCIE_1_PIPE_CLK>,
+                                <&gcc GCC_PCIE_1_PIPE_CLK_SRC>,
+                                <&pcie1_lane>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_PCIE_1_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_MSTR_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_AXI_CLK>,
+                                <&gcc GCC_PCIE_1_SLV_Q2A_AXI_CLK>,
+                                <&gcc GCC_DDRSS_PCIE_SF_TBU_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>;
+                       clock-names = "pipe",
+                                     "pipe_mux",
+                                     "phy_pipe",
+                                     "ref",
+                                     "aux",
+                                     "cfg",
+                                     "bus_master",
+                                     "bus_slave",
+                                     "slave_q2a",
+                                     "ddrss_sf_tbu",
+                                     "aggre1";
+
+                       iommus = <&apps_smmu 0x1c80 0x7f>;
+                       iommu-map = <0x0   &apps_smmu 0x1c80 0x1>,
+                                   <0x100 &apps_smmu 0x1c81 0x1>;
+
+                       resets = <&gcc GCC_PCIE_1_BCR>;
+                       reset-names = "pci";
+
+                       power-domains = <&gcc PCIE_1_GDSC>;
+                       power-domain-names = "gdsc";
+
+                       phys = <&pcie1_lane>;
+                       phy-names = "pciephy";
+
+                       perst-gpio = <&tlmm 97 GPIO_ACTIVE_LOW>;
+                       enable-gpio = <&tlmm 99 GPIO_ACTIVE_HIGH>;
+
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pcie1_default_state>;
+
+                       status = "disabled";
+               };
+
+               pcie1_phy: phy@1c0f000 {
+                       compatible = "qcom,sm8450-qmp-gen4x2-pcie-phy";
+                       reg = <0 0x01c0f000 0 0x200>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clocks = <&gcc GCC_PCIE_1_PHY_AUX_CLK>,
+                                <&gcc GCC_PCIE_1_CFG_AHB_CLK>,
+                                <&gcc GCC_PCIE_1_CLKREF_EN>,
+                                <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>;
+                       clock-names = "aux", "cfg_ahb", "ref", "refgen";
+
+                       resets = <&gcc GCC_PCIE_1_PHY_BCR>;
+                       reset-names = "phy";
+
+                       assigned-clocks = <&gcc GCC_PCIE_1_PHY_RCHNG_CLK>;
+                       assigned-clock-rates = <100000000>;
+
+                       status = "disabled";
+
+                       pcie1_lane: phy@1c0e000 {
+                               reg = <0 0x1c0e000 0 0x200>, /* tx */
+                                     <0 0x1c0e200 0 0x300>, /* rx */
+                                     <0 0x1c0f200 0 0x200>, /* pcs */
+                                     <0 0x1c0e800 0 0x200>, /* tx */
+                                     <0 0x1c0ea00 0 0x300>, /* rx */
+                                     <0 0x1c0f400 0 0xc00>; /* pcs_pcie */
+                               clocks = <&gcc GCC_PCIE_1_PIPE_CLK>;
+                               clock-names = "pipe0";
+
+                               #clock-cells = <0>;
+                               #phy-cells = <0>;
+                               clock-output-names = "pcie_1_pipe_clk";
+                       };
+               };
+
+               config_noc: interconnect@1500000 {
+                       compatible = "qcom,sm8450-config-noc";
+                       reg = <0 0x01500000 0 0x1c000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system_noc: interconnect@1680000 {
+                       compatible = "qcom,sm8450-system-noc";
+                       reg = <0 0x01680000 0 0x1e200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               pcie_noc: interconnect@16c0000 {
+                       compatible = "qcom,sm8450-pcie-anoc";
+                       reg = <0 0x016c0000 0 0xe280>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre1_noc: interconnect@16e0000 {
+                       compatible = "qcom,sm8450-aggre1-noc";
+                       reg = <0 0x016e0000 0 0x1c080>;
+                       #interconnect-cells = <2>;
+                       clocks = <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               aggre2_noc: interconnect@1700000 {
+                       compatible = "qcom,sm8450-aggre2-noc";
+                       reg = <0 0x01700000 0 0x31080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+                       clocks = <&gcc GCC_AGGRE_NOC_PCIE_0_AXI_CLK>,
+                                <&gcc GCC_AGGRE_NOC_PCIE_1_AXI_CLK>,
+                                <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                                <&rpmhcc RPMH_IPA_CLK>;
+               };
+
+               mmss_noc: interconnect@1740000 {
+                       compatible = "qcom,sm8450-mmss-noc";
+                       reg = <0 0x01740000 0 0x1f080>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               tcsr_mutex: hwlock@1f40000 {
+                       compatible = "qcom,tcsr-mutex";
+                       reg = <0x0 0x01f40000 0x0 0x40000>;
+                       #hwlock-cells = <1>;
+               };
+
+               usb_1_hsphy: phy@88e3000 {
+                       compatible = "qcom,sm8450-usb-hs-phy",
+                                    "qcom,usb-snps-hs-7nm-phy";
+                       reg = <0 0x088e3000 0 0x400>;
+                       status = "disabled";
+                       #phy-cells = <0>;
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "ref";
+
+                       resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
+               };
+
+               usb_1_qmpphy: phy-wrapper@88e9000 {
+                       compatible = "qcom,sm8450-qmp-usb3-phy";
+                       reg = <0 0x088e9000 0 0x200>,
+                             <0 0x088e8000 0 0x20>;
+                       status = "disabled";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_USB3_PRIM_PHY_AUX_CLK>,
+                                <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>;
+                       clock-names = "aux", "ref_clk_src", "com_aux";
+
+                       resets = <&gcc GCC_USB3_DP_PHY_PRIM_BCR>,
+                                <&gcc GCC_USB3_PHY_PRIM_BCR>;
+                       reset-names = "phy", "common";
+
+                       usb_1_ssphy: phy@88e9200 {
+                               reg = <0 0x088e9200 0 0x200>,
+                                     <0 0x088e9400 0 0x200>,
+                                     <0 0x088e9c00 0 0x400>,
+                                     <0 0x088e9600 0 0x200>,
+                                     <0 0x088e9800 0 0x200>,
+                                     <0 0x088e9a00 0 0x100>;
+                               #phy-cells = <0>;
+                               #clock-cells = <1>;
+                               clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
+                               clock-names = "pipe0";
+                               clock-output-names = "usb3_phy_pipe_clk_src";
+                       };
+               };
+
+               remoteproc_slpi: remoteproc@2400000 {
+                       compatible = "qcom,sm8450-slpi-pas";
+                       reg = <0 0x02400000 0 0x4000>;
+
+                       interrupts-extended = <&pdc 9 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&smp2p_slpi_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_slpi_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_slpi_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_slpi_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
 
                        clocks = <&rpmhcc RPMH_CXO_CLK>;
                        clock-names = "xo";
 
-                       power-domains = <&rpmhpd 0>,
-                                       <&rpmhpd 12>;
-                       power-domain-names = "cx", "mss";
+                       power-domains = <&rpmhpd SM8450_LCX>,
+                                       <&rpmhpd SM8450_LMX>;
+                       power-domain-names = "lcx", "lmx";
 
-                       memory-region = <&mpss_mem>;
+                       memory-region = <&slpi_mem>;
 
                        qcom,qmp = <&aoss_qmp>;
 
-                       qcom,smem-states = <&smp2p_modem_out 0>;
+                       qcom,smem-states = <&smp2p_slpi_out 0>;
                        qcom,smem-state-names = "stop";
 
                        status = "disabled";
 
                        glink-edge {
-                               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                               interrupts-extended = <&ipcc IPCC_CLIENT_SLPI
                                                             IPCC_MPROC_SIGNAL_GLINK_QMP
                                                             IRQ_TYPE_EDGE_RISING>;
-                               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                               mboxes = <&ipcc IPCC_CLIENT_SLPI
                                                IPCC_MPROC_SIGNAL_GLINK_QMP>;
-                               interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
-                               label = "modem";
-                               qcom,remote-pid = <1>;
+
+                               label = "slpi";
+                               qcom,remote-pid = <3>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "sdsp";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x0541 0x0>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x0542 0x0>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x0543 0x0>;
+                                               /* note: shared-cb = <4> in downstream */
+                                       };
+                               };
                        };
                };
 
-               pdc: interrupt-controller@b220000 {
-                       compatible = "qcom,sm8450-pdc", "qcom,pdc";
-                       reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>;
-                       qcom,pdc-ranges = <0 480 12>, <14 494 24>, <40 520 54>,
-                                         <94 609 31>, <125 63 1>, <126 716 12>;
-                       #interrupt-cells = <2>;
-                       interrupt-parent = <&intc>;
-                       interrupt-controller;
+               remoteproc_adsp: remoteproc@30000000 {
+                       compatible = "qcom,sm8450-adsp-pas";
+                       reg = <0 0x030000000 0 0x100>;
+
+                       interrupts-extended = <&pdc 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SM8450_LCX>,
+                                       <&rpmhpd SM8450_LMX>;
+                       power-domain-names = "lcx", "lmx";
+
+                       memory-region = <&adsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_adsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       remoteproc_adsp_glink: glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_LPASS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_LPASS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "lpass";
+                               qcom,remote-pid = <2>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "adsp";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x1803 0x0>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x1804 0x0>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x1805 0x0>;
+                                       };
+                               };
+                       };
+               };
+
+               remoteproc_cdsp: remoteproc@32300000 {
+                       compatible = "qcom,sm8450-cdsp-pas";
+                       reg = <0 0x032300000 0 0x1400000>;
+
+                       interrupts-extended = <&intc GIC_SPI 578 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&smp2p_cdsp_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_cdsp_in 3 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready",
+                                         "handover", "stop-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd SM8450_CX>,
+                                       <&rpmhpd SM8450_MXC>;
+                       power-domain-names = "cx", "mxc";
+
+                       memory-region = <&cdsp_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_cdsp_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_CDSP
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_CDSP
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                               label = "cdsp";
+                               qcom,remote-pid = <5>;
+
+                               fastrpc {
+                                       compatible = "qcom,fastrpc";
+                                       qcom,glink-channels = "fastrpcglink-apps-dsp";
+                                       label = "cdsp";
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       compute-cb@1 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <1>;
+                                               iommus = <&apps_smmu 0x2161 0x0400>,
+                                                        <&apps_smmu 0x1021 0x1420>;
+                                       };
+
+                                       compute-cb@2 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <2>;
+                                               iommus = <&apps_smmu 0x2162 0x0400>,
+                                                        <&apps_smmu 0x1022 0x1420>;
+                                       };
+
+                                       compute-cb@3 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <3>;
+                                               iommus = <&apps_smmu 0x2163 0x0400>,
+                                                        <&apps_smmu 0x1023 0x1420>;
+                                       };
+
+                                       compute-cb@4 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <4>;
+                                               iommus = <&apps_smmu 0x2164 0x0400>,
+                                                        <&apps_smmu 0x1024 0x1420>;
+                                       };
+
+                                       compute-cb@5 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <5>;
+                                               iommus = <&apps_smmu 0x2165 0x0400>,
+                                                        <&apps_smmu 0x1025 0x1420>;
+                                       };
+
+                                       compute-cb@6 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <6>;
+                                               iommus = <&apps_smmu 0x2166 0x0400>,
+                                                        <&apps_smmu 0x1026 0x1420>;
+                                       };
+
+                                       compute-cb@7 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <7>;
+                                               iommus = <&apps_smmu 0x2167 0x0400>,
+                                                        <&apps_smmu 0x1027 0x1420>;
+                                       };
+
+                                       compute-cb@8 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <8>;
+                                               iommus = <&apps_smmu 0x2168 0x0400>,
+                                                        <&apps_smmu 0x1028 0x1420>;
+                                       };
+
+                                       /* note: secure cb9 in downstream */
+                               };
+                       };
+               };
+
+               remoteproc_mpss: remoteproc@4080000 {
+                       compatible = "qcom,sm8450-mpss-pas";
+                       reg = <0x0 0x04080000 0x0 0x4040>;
+
+                       interrupts-extended = <&intc GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
+                                             <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "wdog", "fatal", "ready", "handover",
+                                         "stop-ack", "shutdown-ack";
+
+                       clocks = <&rpmhcc RPMH_CXO_CLK>;
+                       clock-names = "xo";
+
+                       power-domains = <&rpmhpd 0>,
+                                       <&rpmhpd 12>;
+                       power-domain-names = "cx", "mss";
+
+                       memory-region = <&mpss_mem>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       qcom,smem-states = <&smp2p_modem_out 0>;
+                       qcom,smem-state-names = "stop";
+
+                       status = "disabled";
+
+                       glink-edge {
+                               interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
+                                                            IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                            IRQ_TYPE_EDGE_RISING>;
+                               mboxes = <&ipcc IPCC_CLIENT_MPSS
+                                               IPCC_MPROC_SIGNAL_GLINK_QMP>;
+                               interrupts = <GIC_SPI 449 IRQ_TYPE_EDGE_RISING>;
+                               label = "modem";
+                               qcom,remote-pid = <1>;
+                       };
+               };
+
+               pdc: interrupt-controller@b220000 {
+                       compatible = "qcom,sm8450-pdc", "qcom,pdc";
+                       reg = <0 0x0b220000 0 0x30000>, <0 0x174000f0 0 0x64>;
+                       qcom,pdc-ranges = <0 480 12>, <14 494 24>, <40 520 54>,
+                                         <94 609 31>, <125 63 1>, <126 716 12>;
+                       #interrupt-cells = <2>;
+                       interrupt-parent = <&intc>;
+                       interrupt-controller;
+               };
+
+               tsens0: thermal-sensor@c263000 {
+                       compatible = "qcom,sm8450-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c263000 0 0x1000>, /* TM */
+                             <0 0x0c222000 0 0x1000>; /* SROT */
+                       #qcom,sensors = <16>;
+                       interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               tsens1: thermal-sensor@c265000 {
+                       compatible = "qcom,sm8450-tsens", "qcom,tsens-v2";
+                       reg = <0 0x0c265000 0 0x1000>, /* TM */
+                             <0 0x0c223000 0 0x1000>; /* SROT */
+                       #qcom,sensors = <16>;
+                       interrupts = <GIC_SPI 507 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 509 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "uplow", "critical";
+                       #thermal-sensor-cells = <1>;
+               };
+
+               aoss_qmp: power-controller@c300000 {
+                       compatible = "qcom,sm8450-aoss-qmp", "qcom,aoss-qmp";
+                       reg = <0 0x0c300000 0 0x400>;
+                       interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
+                                                    IRQ_TYPE_EDGE_RISING>;
+                       mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
+
+                       #clock-cells = <0>;
+               };
+
+               ipcc: mailbox@ed18000 {
+                       compatible = "qcom,sm8450-ipcc", "qcom,ipcc";
+                       reg = <0 0x0ed18000 0 0x1000>;
+                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-controller;
+                       #interrupt-cells = <3>;
+                       #mbox-cells = <2>;
+               };
+
+               tlmm: pinctrl@f100000 {
+                       compatible = "qcom,sm8450-tlmm";
+                       reg = <0 0x0f100000 0 0x300000>;
+                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       gpio-ranges = <&tlmm 0 0 211>;
+                       wakeup-parent = <&pdc>;
+
+                       pcie0_default_state: pcie0-default-state {
+                               perst {
+                                       pins = "gpio94";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               clkreq {
+                                       pins = "gpio95";
+                                       function = "pcie0_clkreqn";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               wake {
+                                       pins = "gpio96";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       pcie1_default_state: pcie1-default-state {
+                               perst {
+                                       pins = "gpio97";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-down;
+                               };
+
+                               clkreq {
+                                       pins = "gpio98";
+                                       function = "pcie1_clkreqn";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+
+                               wake {
+                                       pins = "gpio99";
+                                       function = "gpio";
+                                       drive-strength = <2>;
+                                       bias-pull-up;
+                               };
+                       };
+
+                       qup_i2c0_data_clk: qup-i2c0-data-clk {
+                               pins = "gpio0", "gpio1";
+                               function = "qup0";
+                       };
+
+                       qup_i2c1_data_clk: qup-i2c1-data-clk {
+                               pins = "gpio4", "gpio5";
+                               function = "qup1";
+                       };
+
+                       qup_i2c2_data_clk: qup-i2c2-data-clk {
+                               pins = "gpio8", "gpio9";
+                               function = "qup2";
+                       };
+
+                       qup_i2c3_data_clk: qup-i2c3-data-clk {
+                               pins = "gpio12", "gpio13";
+                               function = "qup3";
+                       };
+
+                       qup_i2c4_data_clk: qup-i2c4-data-clk {
+                               pins = "gpio16", "gpio17";
+                               function = "qup4";
+                       };
+
+                       qup_i2c5_data_clk: qup-i2c5-data-clk {
+                               pins = "gpio206", "gpio207";
+                               function = "qup5";
+                       };
+
+                       qup_i2c6_data_clk: qup-i2c6-data-clk {
+                               pins = "gpio20", "gpio21";
+                               function = "qup6";
+                       };
+
+                       qup_i2c8_data_clk: qup-i2c8-data-clk {
+                               pins = "gpio28", "gpio29";
+                               function = "qup8";
+                       };
+
+                       qup_i2c9_data_clk: qup-i2c9-data-clk {
+                               pins = "gpio32", "gpio33";
+                               function = "qup9";
+                       };
+
+                       qup_i2c10_data_clk: qup-i2c10-data-clk {
+                               pins = "gpio36", "gpio37";
+                               function = "qup10";
+                       };
+
+                       qup_i2c11_data_clk: qup-i2c11-data-clk {
+                               pins = "gpio40", "gpio41";
+                               function = "qup11";
+                       };
+
+                       qup_i2c12_data_clk: qup-i2c12-data-clk {
+                               pins = "gpio44", "gpio45";
+                               function = "qup12";
+                       };
+
+                       qup_i2c13_data_clk: qup-i2c13-data-clk {
+                               pins = "gpio48", "gpio49";
+                               function = "qup13";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c14_data_clk: qup-i2c14-data-clk {
+                               pins = "gpio52", "gpio53";
+                               function = "qup14";
+                               drive-strength = <2>;
+                               bias-pull-up;
+                       };
+
+                       qup_i2c15_data_clk: qup-i2c15-data-clk {
+                               pins = "gpio56", "gpio57";
+                               function = "qup15";
+                       };
+
+                       qup_i2c16_data_clk: qup-i2c16-data-clk {
+                               pins = "gpio60", "gpio61";
+                               function = "qup16";
+                       };
+
+                       qup_i2c17_data_clk: qup-i2c17-data-clk {
+                               pins = "gpio64", "gpio65";
+                               function = "qup17";
+                       };
+
+                       qup_i2c18_data_clk: qup-i2c18-data-clk {
+                               pins = "gpio68", "gpio69";
+                               function = "qup18";
+                       };
+
+                       qup_i2c19_data_clk: qup-i2c19-data-clk {
+                               pins = "gpio72", "gpio73";
+                               function = "qup19";
+                       };
+
+                       qup_i2c20_data_clk: qup-i2c20-data-clk {
+                               pins = "gpio76", "gpio77";
+                               function = "qup20";
+                       };
+
+                       qup_i2c21_data_clk: qup-i2c21-data-clk {
+                               pins = "gpio80", "gpio81";
+                               function = "qup21";
+                       };
+
+                       qup_spi0_cs: qup-spi0-cs {
+                               pins = "gpio3";
+                               function = "qup0";
+                       };
+
+                       qup_spi0_data_clk: qup-spi0-data-clk {
+                               pins = "gpio0", "gpio1", "gpio2";
+                               function = "qup0";
+                       };
+
+                       qup_spi1_cs: qup-spi1-cs {
+                               pins = "gpio7";
+                               function = "qup1";
+                       };
+
+                       qup_spi1_data_clk: qup-spi1-data-clk {
+                               pins = "gpio4", "gpio5", "gpio6";
+                               function = "qup1";
+                       };
+
+                       qup_spi2_cs: qup-spi2-cs {
+                               pins = "gpio11";
+                               function = "qup2";
+                       };
+
+                       qup_spi2_data_clk: qup-spi2-data-clk {
+                               pins = "gpio8", "gpio9", "gpio10";
+                               function = "qup2";
+                       };
+
+                       qup_spi3_cs: qup-spi3-cs {
+                               pins = "gpio15";
+                               function = "qup3";
+                       };
+
+                       qup_spi3_data_clk: qup-spi3-data-clk {
+                               pins = "gpio12", "gpio13", "gpio14";
+                               function = "qup3";
+                       };
+
+                       qup_spi4_cs: qup-spi4-cs {
+                               pins = "gpio19";
+                               function = "qup4";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi4_data_clk: qup-spi4-data-clk {
+                               pins = "gpio16", "gpio17", "gpio18";
+                               function = "qup4";
+                       };
+
+                       qup_spi5_cs: qup-spi5-cs {
+                               pins = "gpio85";
+                               function = "qup5";
+                       };
+
+                       qup_spi5_data_clk: qup-spi5-data-clk {
+                               pins = "gpio206", "gpio207", "gpio84";
+                               function = "qup5";
+                       };
+
+                       qup_spi6_cs: qup-spi6-cs {
+                               pins = "gpio23";
+                               function = "qup6";
+                       };
+
+                       qup_spi6_data_clk: qup-spi6-data-clk {
+                               pins = "gpio20", "gpio21", "gpio22";
+                               function = "qup6";
+                       };
+
+                       qup_spi8_cs: qup-spi8-cs {
+                               pins = "gpio31";
+                               function = "qup8";
+                       };
+
+                       qup_spi8_data_clk: qup-spi8-data-clk {
+                               pins = "gpio28", "gpio29", "gpio30";
+                               function = "qup8";
+                       };
+
+                       qup_spi9_cs: qup-spi9-cs {
+                               pins = "gpio35";
+                               function = "qup9";
+                       };
+
+                       qup_spi9_data_clk: qup-spi9-data-clk {
+                               pins = "gpio32", "gpio33", "gpio34";
+                               function = "qup9";
+                       };
+
+                       qup_spi10_cs: qup-spi10-cs {
+                               pins = "gpio39";
+                               function = "qup10";
+                       };
+
+                       qup_spi10_data_clk: qup-spi10-data-clk {
+                               pins = "gpio36", "gpio37", "gpio38";
+                               function = "qup10";
+                       };
+
+                       qup_spi11_cs: qup-spi11-cs {
+                               pins = "gpio43";
+                               function = "qup11";
+                       };
+
+                       qup_spi11_data_clk: qup-spi11-data-clk {
+                               pins = "gpio40", "gpio41", "gpio42";
+                               function = "qup11";
+                       };
+
+                       qup_spi12_cs: qup-spi12-cs {
+                               pins = "gpio47";
+                               function = "qup12";
+                       };
+
+                       qup_spi12_data_clk: qup-spi12-data-clk {
+                               pins = "gpio44", "gpio45", "gpio46";
+                               function = "qup12";
+                       };
+
+                       qup_spi13_cs: qup-spi13-cs {
+                               pins = "gpio51";
+                               function = "qup13";
+                       };
+
+                       qup_spi13_data_clk: qup-spi13-data-clk {
+                               pins = "gpio48", "gpio49", "gpio50";
+                               function = "qup13";
+                       };
+
+                       qup_spi14_cs: qup-spi14-cs {
+                               pins = "gpio55";
+                               function = "qup14";
+                       };
+
+                       qup_spi14_data_clk: qup-spi14-data-clk {
+                               pins = "gpio52", "gpio53", "gpio54";
+                               function = "qup14";
+                       };
+
+                       qup_spi15_cs: qup-spi15-cs {
+                               pins = "gpio59";
+                               function = "qup15";
+                       };
+
+                       qup_spi15_data_clk: qup-spi15-data-clk {
+                               pins = "gpio56", "gpio57", "gpio58";
+                               function = "qup15";
+                       };
+
+                       qup_spi16_cs: qup-spi16-cs {
+                               pins = "gpio63";
+                               function = "qup16";
+                       };
+
+                       qup_spi16_data_clk: qup-spi16-data-clk {
+                               pins = "gpio60", "gpio61", "gpio62";
+                               function = "qup16";
+                       };
+
+                       qup_spi17_cs: qup-spi17-cs {
+                               pins = "gpio67";
+                               function = "qup17";
+                       };
+
+                       qup_spi17_data_clk: qup-spi17-data-clk {
+                               pins = "gpio64", "gpio65", "gpio66";
+                               function = "qup17";
+                       };
+
+                       qup_spi18_cs: qup-spi18-cs {
+                               pins = "gpio71";
+                               function = "qup18";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi18_data_clk: qup-spi18-data-clk {
+                               pins = "gpio68", "gpio69", "gpio70";
+                               function = "qup18";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi19_cs: qup-spi19-cs {
+                               pins = "gpio75";
+                               function = "qup19";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi19_data_clk: qup-spi19-data-clk {
+                               pins = "gpio72", "gpio73", "gpio74";
+                               function = "qup19";
+                               drive-strength = <6>;
+                               bias-disable;
+                       };
+
+                       qup_spi20_cs: qup-spi20-cs {
+                               pins = "gpio79";
+                               function = "qup20";
+                       };
+
+                       qup_spi20_data_clk: qup-spi20-data-clk {
+                               pins = "gpio76", "gpio77", "gpio78";
+                               function = "qup20";
+                       };
+
+                       qup_spi21_cs: qup-spi21-cs {
+                               pins = "gpio83";
+                               function = "qup21";
+                       };
+
+                       qup_spi21_data_clk: qup-spi21-data-clk {
+                               pins = "gpio80", "gpio81", "gpio82";
+                               function = "qup21";
+                       };
+
+                       qup_uart7_rx: qup-uart7-rx {
+                               pins = "gpio26";
+                               function = "qup7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+
+                       qup_uart7_tx: qup-uart7-tx {
+                               pins = "gpio27";
+                               function = "qup7";
+                               drive-strength = <2>;
+                               bias-disable;
+                       };
+               };
+
+               apps_smmu: iommu@15000000 {
+                       compatible = "qcom,sm8450-smmu-500", "arm,mmu-500";
+                       reg = <0 0x15000000 0 0x100000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts =    <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               intc: interrupt-controller@17100000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       #redistributor-regions = <1>;
+                       redistributor-stride = <0x0 0x40000>;
+                       reg = <0x0 0x17100000 0x0 0x10000>,     /* GICD */
+                             <0x0 0x17180000 0x0 0x200000>;    /* GICR * 8 */
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               timer@17420000 {
+                       compatible = "arm,armv7-timer-mem";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       reg = <0x0 0x17420000 0x0 0x1000>;
+                       clock-frequency = <19200000>;
+
+                       frame@17421000 {
+                               frame-number = <0>;
+                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17421000 0x0 0x1000>,
+                                     <0x0 0x17422000 0x0 0x1000>;
+                       };
+
+                       frame@17423000 {
+                               frame-number = <1>;
+                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17423000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17425000 {
+                               frame-number = <2>;
+                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17425000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17427000 {
+                               frame-number = <3>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17427000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@17429000 {
+                               frame-number = <4>;
+                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x17429000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@1742b000 {
+                               frame-number = <5>;
+                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x1742b000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+
+                       frame@1742d000 {
+                               frame-number = <6>;
+                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+                               reg = <0x0 0x1742d000 0x0 0x1000>;
+                               status = "disabled";
+                       };
+               };
+
+               apps_rsc: rsc@17a00000 {
+                       label = "apps_rsc";
+                       compatible = "qcom,rpmh-rsc";
+                       reg = <0x0 0x17a00000 0x0 0x10000>,
+                             <0x0 0x17a10000 0x0 0x10000>,
+                             <0x0 0x17a20000 0x0 0x10000>,
+                             <0x0 0x17a30000 0x0 0x10000>;
+                       reg-names = "drv-0", "drv-1", "drv-2", "drv-3";
+                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       qcom,tcs-offset = <0xd00>;
+                       qcom,drv-id = <2>;
+                       qcom,tcs-config = <ACTIVE_TCS  3>, <SLEEP_TCS   2>,
+                                         <WAKE_TCS    2>, <CONTROL_TCS 0>;
+
+                       apps_bcm_voter: bcm-voter {
+                               compatible = "qcom,bcm-voter";
+                       };
+
+                       rpmhcc: clock-controller {
+                               compatible = "qcom,sm8450-rpmh-clk";
+                               #clock-cells = <1>;
+                               clock-names = "xo";
+                               clocks = <&xo_board>;
+                       };
+
+                       rpmhpd: power-controller {
+                               compatible = "qcom,sm8450-rpmhpd";
+                               #power-domain-cells = <1>;
+                               operating-points-v2 = <&rpmhpd_opp_table>;
+
+                               rpmhpd_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       rpmhpd_opp_ret: opp1 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
+                                       };
+
+                                       rpmhpd_opp_min_svs: opp2 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+                                       };
+
+                                       rpmhpd_opp_low_svs: opp3 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs: opp4 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                                       };
+
+                                       rpmhpd_opp_svs_l1: opp5 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom: opp6 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                                       };
+
+                                       rpmhpd_opp_nom_l1: opp7 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                                       };
+
+                                       rpmhpd_opp_nom_l2: opp8 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
+                                       };
+
+                                       rpmhpd_opp_turbo: opp9 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+                                       };
+
+                                       rpmhpd_opp_turbo_l1: opp10 {
+                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+                                       };
+                               };
+                       };
+               };
+
+               cpufreq_hw: cpufreq@17d91000 {
+                       compatible = "qcom,sm8450-cpufreq-epss", "qcom,cpufreq-epss";
+                       reg = <0 0x17d91000 0 0x1000>,
+                             <0 0x17d92000 0 0x1000>,
+                             <0 0x17d93000 0 0x1000>;
+                       reg-names = "freq-domain0", "freq-domain1", "freq-domain2";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
+                       clock-names = "xo", "alternate";
+                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dcvsh-irq-0", "dcvsh-irq-1", "dcvsh-irq-2";
+                       #freq-domain-cells = <1>;
+               };
+
+               gem_noc: interconnect@19100000 {
+                       compatible = "qcom,sm8450-gem-noc";
+                       reg = <0 0x19100000 0 0xbb800>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               system-cache-controller@19200000 {
+                       compatible = "qcom,sm8450-llcc";
+                       reg = <0 0x19200000 0 0x580000>, <0 0x19a00000 0 0x80000>;
+                       reg-names = "llcc_base", "llcc_broadcast_base";
+                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
+               ufs_mem_hc: ufshc@1d84000 {
+                       compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
+                                    "jedec,ufs-2.0";
+                       reg = <0 0x01d84000 0 0x3000>;
+                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&ufs_mem_phy_lanes>;
+                       phy-names = "ufsphy";
+                       lanes-per-direction = <2>;
+                       #reset-cells = <1>;
+                       resets = <&gcc GCC_UFS_PHY_BCR>;
+                       reset-names = "rst";
+
+                       power-domains = <&gcc UFS_PHY_GDSC>;
+
+                       iommus = <&apps_smmu 0xe0 0x0>;
+
+                       interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>,
+                                       <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>;
+                       interconnect-names = "ufs-ddr", "cpu-ufs";
+                       clock-names =
+                               "core_clk",
+                               "bus_aggr_clk",
+                               "iface_clk",
+                               "core_clk_unipro",
+                               "ref_clk",
+                               "tx_lane0_sync_clk",
+                               "rx_lane0_sync_clk",
+                               "rx_lane1_sync_clk";
+                       clocks =
+                               <&gcc GCC_UFS_PHY_AXI_CLK>,
+                               <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
+                               <&gcc GCC_UFS_PHY_AHB_CLK>,
+                               <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
+                               <&rpmhcc RPMH_CXO_CLK>,
+                               <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
+                               <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
+                               <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       freq-table-hz =
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <75000000 300000000>,
+                               <75000000 300000000>,
+                               <0 0>,
+                               <0 0>,
+                               <0 0>;
+                       status = "disabled";
+               };
+
+               ufs_mem_phy: phy@1d87000 {
+                       compatible = "qcom,sm8450-qmp-ufs-phy";
+                       reg = <0 0x01d87000 0 0xe10>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+                       clock-names = "ref", "ref_aux", "qref";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&gcc GCC_UFS_0_CLKREF_EN>;
+
+                       resets = <&ufs_mem_hc 0>;
+                       reset-names = "ufsphy";
+                       status = "disabled";
+
+                       ufs_mem_phy_lanes: phy@1d87400 {
+                               reg = <0 0x01d87400 0 0x108>,
+                                     <0 0x01d87600 0 0x1e0>,
+                                     <0 0x01d87c00 0 0x1dc>,
+                                     <0 0x01d87800 0 0x108>,
+                                     <0 0x01d87a00 0 0x1e0>;
+                               #phy-cells = <0>;
+                               #clock-cells = <0>;
+                       };
+               };
+
+               usb_1: usb@a6f8800 {
+                       compatible = "qcom,sm8450-dwc3", "qcom,dwc3";
+                       reg = <0 0x0a6f8800 0 0x400>;
+                       status = "disabled";
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
+                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
+                                <&gcc GCC_USB3_0_CLKREF_EN>;
+                       clock-names = "cfg_noc", "core", "iface", "mock_utmi",
+                                     "sleep", "xo";
+
+                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq", "dp_hs_phy_irq",
+                                         "dm_hs_phy_irq", "ss_phy_irq";
+
+                       power-domains = <&gcc USB30_PRIM_GDSC>;
+
+                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+
+                       usb_1_dwc3: usb@a600000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a600000 0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x0 0x0>;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
+                               phy-names = "usb2-phy", "usb3-phy";
+                       };
+               };
+
+               nsp_noc: interconnect@320c0000 {
+                       compatible = "qcom,sm8450-nsp-noc";
+                       reg = <0 0x320c0000 0 0x10000>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+
+               lpass_ag_noc: interconnect@3c40000 {
+                       compatible = "qcom,sm8450-lpass-ag-noc";
+                       reg = <0 0x3c40000 0 0x17200>;
+                       #interconnect-cells = <2>;
+                       qcom,bcm-voters = <&apps_bcm_voter>;
+               };
+       };
+
+       thermal-zones {
+               aoss0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 0>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 1>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 2>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 3>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpuss4-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 4>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+
+               cpu4-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 5>;
+
+                       trips {
+                               cpu4_top_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4_top_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4_top_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu4-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 6>;
+
+                       trips {
+                               cpu4_bottom_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4_bottom_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu4_bottom_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 7>;
+
+                       trips {
+                               cpu5_top_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5_top_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5_top_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu5-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 8>;
+
+                       trips {
+                               cpu5_bottom_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5_bottom_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu5_bottom_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 9>;
+
+                       trips {
+                               cpu6_top_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6_top_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6_top_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu6-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 10>;
+
+                       trips {
+                               cpu6_bottom_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6_bottom_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu6_bottom_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               cpu7-top-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 11>;
+
+                       trips {
+                               cpu7_top_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7_top_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7_top_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               aoss_qmp: power-controller@c300000 {
-                       compatible = "qcom,sm8450-aoss-qmp", "qcom,aoss-qmp";
-                       reg = <0 0x0c300000 0 0x400>;
-                       interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
-                                                    IRQ_TYPE_EDGE_RISING>;
-                       mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
+               cpu7-middle-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 12>;
 
-                       #clock-cells = <0>;
-               };
+                       trips {
+                               cpu7_middle_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
 
-               ipcc: mailbox@ed18000 {
-                       compatible = "qcom,sm8450-ipcc", "qcom,ipcc";
-                       reg = <0 0x0ed18000 0 0x1000>;
-                       interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-controller;
-                       #interrupt-cells = <3>;
-                       #mbox-cells = <2>;
+                               cpu7_middle_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu7_middle_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
                };
 
-               tlmm: pinctrl@f100000 {
-                       compatible = "qcom,sm8450-tlmm";
-                       reg = <0 0x0f100000 0 0x300000>;
-                       interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       gpio-ranges = <&tlmm 0 0 211>;
-                       wakeup-parent = <&pdc>;
+               cpu7-bottom-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 13>;
 
-                       qup_i2c13_data_clk: qup-i2c13-data-clk {
-                               pins = "gpio48", "gpio49";
-                               function = "qup13";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
+                       trips {
+                               cpu7_bottom_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
 
-                       qup_i2c14_data_clk: qup-i2c14-data-clk {
-                               pins = "gpio52", "gpio53";
-                               function = "qup14";
-                               drive-strength = <2>;
-                               bias-pull-up;
-                       };
+                               cpu7_bottom_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
 
-                       qup_uart7_rx: qup-uart7-rx {
-                               pins = "gpio26";
-                               function = "qup7";
-                               drive-strength = <2>;
-                               bias-disable;
+                               cpu7_bottom_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
+               };
 
-                       qup_uart7_tx: qup-uart7-tx {
-                               pins = "gpio27";
-                               function = "qup7";
-                               drive-strength = <2>;
-                               bias-disable;
+               gpu-top-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 14>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               thermal-hal-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               gpu0_tj_cfg: tj_cfg {
+                                       temperature = <95000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
                        };
                };
 
-               apps_smmu: iommu@15000000 {
-                       compatible = "qcom,sm8450-smmu-500", "arm,mmu-500";
-                       reg = <0 0x15000000 0 0x100000>;
-                       #iommu-cells = <2>;
-                       #global-interrupts = <1>;
-                       interrupts =    <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 707 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 690 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 691 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 692 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 693 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>,
-                                       <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
-               };
+               gpu-bottom-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens0 15>;
 
-               intc: interrupt-controller@17100000 {
-                       compatible = "arm,gic-v3";
-                       #interrupt-cells = <3>;
-                       interrupt-controller;
-                       #redistributor-regions = <1>;
-                       redistributor-stride = <0x0 0x40000>;
-                       reg = <0x0 0x17100000 0x0 0x10000>,     /* GICD */
-                             <0x0 0x17180000 0x0 0x200000>;    /* GICR * 8 */
-                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
-               };
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-               timer@17420000 {
-                       compatible = "arm,armv7-timer-mem";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
-                       reg = <0x0 0x17420000 0x0 0x1000>;
-                       clock-frequency = <19200000>;
+                               thermal-hal-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                       frame@17421000 {
-                               frame-number = <0>;
-                               interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x17421000 0x0 0x1000>,
-                                     <0x0 0x17422000 0x0 0x1000>;
-                       };
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
 
-                       frame@17423000 {
-                               frame-number = <1>;
-                               interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x17423000 0x0 0x1000>;
-                               status = "disabled";
+                               gpu1_tj_cfg: tj_cfg {
+                                       temperature = <95000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
                        };
+               };
 
-                       frame@17425000 {
-                               frame-number = <2>;
-                               interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x17425000 0x0 0x1000>;
-                               status = "disabled";
-                       };
+               aoss1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 0>;
 
-                       frame@17427000 {
-                               frame-number = <3>;
-                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x17427000 0x0 0x1000>;
-                               status = "disabled";
-                       };
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                       frame@17429000 {
-                               frame-number = <4>;
-                               interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x17429000 0x0 0x1000>;
-                               status = "disabled";
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
                        };
+               };
 
-                       frame@1742b000 {
-                               frame-number = <5>;
-                               interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x1742b000 0x0 0x1000>;
-                               status = "disabled";
-                       };
+               cpu0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 1>;
 
-                       frame@1742d000 {
-                               frame-number = <6>;
-                               interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
-                               reg = <0x0 0x1742d000 0x0 0x1000>;
-                               status = "disabled";
+                       trips {
+                               cpu0_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu0_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu0_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
                };
 
-               apps_rsc: rsc@17a00000 {
-                       label = "apps_rsc";
-                       compatible = "qcom,rpmh-rsc";
-                       reg = <0x0 0x17a00000 0x0 0x10000>,
-                             <0x0 0x17a10000 0x0 0x10000>,
-                             <0x0 0x17a20000 0x0 0x10000>,
-                             <0x0 0x17a30000 0x0 0x10000>;
-                       reg-names = "drv-0", "drv-1", "drv-2", "drv-3";
-                       interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
-                       qcom,tcs-offset = <0xd00>;
-                       qcom,drv-id = <2>;
-                       qcom,tcs-config = <ACTIVE_TCS  3>, <SLEEP_TCS   2>,
-                                         <WAKE_TCS    2>, <CONTROL_TCS 0>;
+               cpu1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 2>;
+
+                       trips {
+                               cpu1_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu1_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
 
-                       apps_bcm_voter: bcm-voter {
-                               compatible = "qcom,bcm-voter";
+                               cpu1_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
+               };
 
-                       rpmhcc: clock-controller {
-                               compatible = "qcom,sm8450-rpmh-clk";
-                               #clock-cells = <1>;
-                               clock-names = "xo";
-                               clocks = <&xo_board>;
+               cpu2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 3>;
+
+                       trips {
+                               cpu2_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu2_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
+
+                               cpu2_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
                        };
+               };
 
-                       rpmhpd: power-controller {
-                               compatible = "qcom,sm8450-rpmhpd";
-                               #power-domain-cells = <1>;
-                               operating-points-v2 = <&rpmhpd_opp_table>;
+               cpu3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 4>;
 
-                               rpmhpd_opp_table: opp-table {
-                                       compatible = "operating-points-v2";
+                       trips {
+                               cpu3_alert0: trip-point0 {
+                                       temperature = <90000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
 
-                                       rpmhpd_opp_ret: opp1 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
-                                       };
+                               cpu3_alert1: trip-point1 {
+                                       temperature = <95000>;
+                                       hysteresis = <2000>;
+                                       type = "passive";
+                               };
 
-                                       rpmhpd_opp_min_svs: opp2 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
-                                       };
+                               cpu3_crit: cpu_crit {
+                                       temperature = <110000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
 
-                                       rpmhpd_opp_low_svs: opp3 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
-                                       };
+               cdsp0-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 5>;
 
-                                       rpmhpd_opp_svs: opp4 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
-                                       };
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                                       rpmhpd_opp_svs_l1: opp5 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
-                                       };
+                               thermal-hal-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                                       rpmhpd_opp_nom: opp6 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
-                                       };
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
 
-                                       rpmhpd_opp_nom_l1: opp7 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
-                                       };
+                               cdsp_0_config: junction-config {
+                                       temperature = <95000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
 
-                                       rpmhpd_opp_nom_l2: opp8 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
-                                       };
+               cdsp1-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 6>;
 
-                                       rpmhpd_opp_turbo: opp9 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
-                                       };
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                                       rpmhpd_opp_turbo_l1: opp10 {
-                                               opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
-                                       };
+                               thermal-hal-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               cdsp_1_config: junction-config {
+                                       temperature = <95000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
                                };
                        };
                };
 
-               cpufreq_hw: cpufreq@17d91000 {
-                       compatible = "qcom,sm8450-cpufreq-epss", "qcom,cpufreq-epss";
-                       reg = <0 0x17d91000 0 0x1000>,
-                             <0 0x17d92000 0 0x1000>,
-                             <0 0x17d93000 0 0x1000>;
-                       reg-names = "freq-domain0", "freq-domain1", "freq-domain2";
-                       clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
-                       clock-names = "xo", "alternate";
-                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "dcvsh-irq-0", "dcvsh-irq-1", "dcvsh-irq-2";
-                       #freq-domain-cells = <1>;
+               cdsp2-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 7>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               thermal-hal-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               cdsp_2_config: junction-config {
+                                       temperature = <95000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
                };
 
-               gem_noc: interconnect@19100000 {
-                       compatible = "qcom,sm8450-gem-noc";
-                       reg = <0 0x19100000 0 0xbb800>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
+               video-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 8>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
                };
 
-               system-cache-controller@19200000 {
-                       compatible = "qcom,sm8450-llcc";
-                       reg = <0 0x19200000 0 0x580000>, <0 0x19a00000 0 0x80000>;
-                       reg-names = "llcc_base", "llcc_broadcast_base";
-                       interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
+               mem-thermal {
+                       polling-delay-passive = <10>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 9>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               ddr_config0: ddr0-config {
+                                       temperature = <90000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
                };
 
-               ufs_mem_hc: ufshc@1d84000 {
-                       compatible = "qcom,sm8450-ufshc", "qcom,ufshc",
-                                    "jedec,ufs-2.0";
-                       reg = <0 0x01d84000 0 0x3000>;
-                       interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&ufs_mem_phy_lanes>;
-                       phy-names = "ufsphy";
-                       lanes-per-direction = <2>;
-                       #reset-cells = <1>;
-                       resets = <&gcc GCC_UFS_PHY_BCR>;
-                       reset-names = "rst";
+               modem0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 10>;
 
-                       power-domains = <&gcc UFS_PHY_GDSC>;
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                       iommus = <&apps_smmu 0xe0 0x0>;
+                               mdmss0_config0: mdmss0-config0 {
+                                       temperature = <102000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
 
-                       interconnects = <&aggre1_noc MASTER_UFS_MEM &mc_virt SLAVE_EBI1>,
-                                       <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_UFS_MEM_CFG>;
-                       interconnect-names = "ufs-ddr", "cpu-ufs";
-                       clock-names =
-                               "core_clk",
-                               "bus_aggr_clk",
-                               "iface_clk",
-                               "core_clk_unipro",
-                               "ref_clk",
-                               "tx_lane0_sync_clk",
-                               "rx_lane0_sync_clk",
-                               "rx_lane1_sync_clk";
-                       clocks =
-                               <&gcc GCC_UFS_PHY_AXI_CLK>,
-                               <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
-                               <&gcc GCC_UFS_PHY_AHB_CLK>,
-                               <&gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
-                               <&rpmhcc RPMH_CXO_CLK>,
-                               <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
-                               <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
-                               <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
-                       freq-table-hz =
-                               <75000000 300000000>,
-                               <0 0>,
-                               <0 0>,
-                               <75000000 300000000>,
-                               <75000000 300000000>,
-                               <0 0>,
-                               <0 0>,
-                               <0 0>;
-                       status = "disabled";
+                               mdmss0_config1: mdmss0-config1 {
+                                       temperature = <105000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
                };
 
-               ufs_mem_phy: phy@1d87000 {
-                       compatible = "qcom,sm8450-qmp-ufs-phy";
-                       reg = <0 0x01d87000 0 0xe10>;
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
-                       clock-names = "ref", "ref_aux", "qref";
-                       clocks = <&rpmhcc RPMH_CXO_CLK>,
-                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
-                                <&gcc GCC_UFS_0_CLKREF_EN>;
+               modem1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 11>;
 
-                       resets = <&ufs_mem_hc 0>;
-                       reset-names = "ufsphy";
-                       status = "disabled";
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                       ufs_mem_phy_lanes: lanes@1d87400 {
-                               reg = <0 0x01d87400 0 0x108>,
-                                     <0 0x01d87600 0 0x1e0>,
-                                     <0 0x01d87c00 0 0x1dc>,
-                                     <0 0x01d87800 0 0x108>,
-                                     <0 0x01d87a00 0 0x1e0>;
-                               #phy-cells = <0>;
-                               #clock-cells = <0>;
+                               mdmss1_config0: mdmss1-config0 {
+                                       temperature = <102000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
+
+                               mdmss1_config1: mdmss1-config1 {
+                                       temperature = <105000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
                        };
                };
 
-               usb_1: usb@a6f8800 {
-                       compatible = "qcom,sm8450-dwc3", "qcom,dwc3";
-                       reg = <0 0x0a6f8800 0 0x400>;
-                       status = "disabled";
-                       #address-cells = <2>;
-                       #size-cells = <2>;
-                       ranges;
+               modem2-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 12>;
 
-                       clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
-                                <&gcc GCC_USB30_PRIM_MASTER_CLK>,
-                                <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
-                                <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
-                                <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
-                                <&gcc GCC_USB3_0_CLKREF_EN>;
-                       clock-names = "cfg_noc", "core", "iface", "mock_utmi",
-                                     "sleep", "xo";
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
 
-                       assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
-                                         <&gcc GCC_USB30_PRIM_MASTER_CLK>;
-                       assigned-clock-rates = <19200000>, <200000000>;
+                               mdmss2_config0: mdmss2-config0 {
+                                       temperature = <102000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
 
-                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
-                                             <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
-                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "hs_phy_irq", "dp_hs_phy_irq",
-                                         "dm_hs_phy_irq", "ss_phy_irq";
+                               mdmss2_config1: mdmss2-config1 {
+                                       temperature = <105000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
 
-                       power-domains = <&gcc USB30_PRIM_GDSC>;
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
+               };
 
-                       resets = <&gcc GCC_USB30_PRIM_BCR>;
+               modem3-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 13>;
 
-                       usb_1_dwc3: usb@a600000 {
-                               compatible = "snps,dwc3";
-                               reg = <0 0x0a600000 0 0xcd00>;
-                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
-                               iommus = <&apps_smmu 0x0 0x0>;
-                               snps,dis_u2_susphy_quirk;
-                               snps,dis_enblslpm_quirk;
-                               phys = <&usb_1_hsphy>, <&usb_1_ssphy>;
-                               phy-names = "usb2-phy", "usb3-phy";
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               mdmss3_config0: mdmss3-config0 {
+                                       temperature = <102000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
+
+                               mdmss3_config1: mdmss3-config1 {
+                                       temperature = <105000>;
+                                       hysteresis = <3000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
                        };
                };
 
-               nsp_noc: interconnect@320c0000 {
-                       compatible = "qcom,sm8450-nsp-noc";
-                       reg = <0 0x320c0000 0 0x10000>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
+               camera0-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 14>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
                };
 
-               lpass_ag_noc: interconnect@3c40000 {
-                       compatible = "qcom,sm8450-lpass-ag-noc";
-                       reg = <0 0x3c40000 0 0x17200>;
-                       #interconnect-cells = <2>;
-                       qcom,bcm-voters = <&apps_bcm_voter>;
+               camera1-thermal {
+                       polling-delay-passive = <0>;
+                       polling-delay = <0>;
+                       thermal-sensors = <&tsens1 15>;
+
+                       trips {
+                               thermal-engine-config {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+
+                               reset-mon-cfg {
+                                       temperature = <115000>;
+                                       hysteresis = <5000>;
+                                       type = "passive";
+                               };
+                       };
                };
        };
 
index d000f6b..e66d76d 100644 (file)
@@ -65,6 +65,8 @@ dtb-$(CONFIG_ARCH_R8A779A0) += r8a779a0-falcon.dtb
 
 dtb-$(CONFIG_ARCH_R8A779F0) += r8a779f0-spider.dtb
 
+dtb-$(CONFIG_ARCH_R8A779G0) += r8a779g0-white-hawk.dtb
+
 dtb-$(CONFIG_ARCH_R8A77951) += r8a779m1-salvator-xs.dtb
 dtb-$(CONFIG_ARCH_R8A77951) += r8a779m1-ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A77951) += r8a779m1-ulcb-kf.dtb
@@ -75,7 +77,11 @@ dtb-$(CONFIG_ARCH_R8A77961) += r8a779m3-ulcb-kf.dtb
 
 dtb-$(CONFIG_ARCH_R8A77965) += r8a779m5-salvator-xs.dtb
 
+dtb-$(CONFIG_ARCH_R9A07G043) += r9a07g043u11-smarc.dtb
+
 dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044c2-smarc.dtb
 dtb-$(CONFIG_ARCH_R9A07G044) += r9a07g044l2-smarc.dtb
 
 dtb-$(CONFIG_ARCH_R9A07G054) += r9a07g054l2-smarc.dtb
+
+dtb-$(CONFIG_ARCH_R9A09G011) += r9a09g011-v2mevk2.dtb
index 5ad6cd1..142e7ff 100644 (file)
        status = "okay";
 };
 
-&du_out_rgb {
-       remote-endpoint = <&rgb_panel>;
+&du {
+       ports {
+               port@0 {
+                       du_out_rgb: endpoint {
+                               remote-endpoint = <&rgb_panel>;
+                       };
+               };
+       };
 };
 
 &ehci0 {
index eb0327c..7231f82 100644 (file)
 
        ports {
                port@0 {
-                       endpoint {
+                       du_out_rgb: endpoint {
                                remote-endpoint = <&adv7123_in>;
                        };
                };
                function = "pwm1";
        };
 
+       rpc_pins: rpc {
+               groups = "rpc_clk2", "rpc_ctrl", "rpc_data", "rpc_reset",
+                        "rpc_int";
+               function = "rpc";
+       };
+
        scif2_pins: scif2 {
                groups = "scif2_data";
                function = "scif2";
        };
 };
 
+&rpc {
+       pinctrl-0 = <&rpc_pins>;
+       pinctrl-names = "default";
+
+       /* Left disabled.  To be enabled by firmware when unlocked. */
+
+       flash@0 {
+               compatible = "cypress,hyperflash", "cfi-flash";
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       bootparam@0 {
+                               reg = <0x00000000 0x040000>;
+                               read-only;
+                       };
+                       bl2@40000 {
+                               reg = <0x00040000 0x140000>;
+                               read-only;
+                       };
+                       cert_header_sa6@180000 {
+                               reg = <0x00180000 0x040000>;
+                               read-only;
+                       };
+                       bl31@1c0000 {
+                               reg = <0x001c0000 0x040000>;
+                               read-only;
+                       };
+                       tee@200000 {
+                               reg = <0x00200000 0x440000>;
+                               read-only;
+                       };
+                       uboot@640000 {
+                               reg = <0x00640000 0x100000>;
+                               read-only;
+                       };
+                       dtb@740000 {
+                               reg = <0x00740000 0x080000>;
+                       };
+                       kernel@7c0000 {
+                               reg = <0x007c0000 0x1400000>;
+                       };
+                       user@1bc0000 {
+                               reg = <0x01bc0000 0x2440000>;
+                       };
+               };
+       };
+};
+
 &rwdt {
        timeout-sec = <60>;
        status = "okay";
index 67231c8..72f359e 100644 (file)
 
        ports {
                port@0 {
-                       endpoint {
+                       du_out_rgb: endpoint {
                                remote-endpoint = <&adv7123_in>;
                        };
                };
                function = "pwm5";
        };
 
+       rpc_pins: rpc {
+               groups = "rpc_clk2", "rpc_ctrl", "rpc_data", "rpc_reset",
+                        "rpc_int";
+               function = "rpc";
+       };
+
        scif2_pins: scif2 {
                groups = "scif2_data_a";
                function = "scif2";
 
 };
 
+&rpc {
+       pinctrl-0 = <&rpc_pins>;
+       pinctrl-names = "default";
+
+       /* Left disabled.  To be enabled by firmware when unlocked. */
+
+       flash@0 {
+               compatible = "cypress,hyperflash", "cfi-flash";
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       bootparam@0 {
+                               reg = <0x00000000 0x040000>;
+                               read-only;
+                       };
+                       bl2@40000 {
+                               reg = <0x00040000 0x140000>;
+                               read-only;
+                       };
+                       cert_header_sa6@180000 {
+                               reg = <0x00180000 0x040000>;
+                               read-only;
+                       };
+                       bl31@1c0000 {
+                               reg = <0x001c0000 0x040000>;
+                               read-only;
+                       };
+                       tee@200000 {
+                               reg = <0x00200000 0x440000>;
+                               read-only;
+                       };
+                       uboot@640000 {
+                               reg = <0x00640000 0x100000>;
+                               read-only;
+                       };
+                       dtb@740000 {
+                               reg = <0x00740000 0x080000>;
+                       };
+                       kernel@7c0000 {
+                               reg = <0x007c0000 0x1400000>;
+                       };
+                       user@1bc0000 {
+                               reg = <0x01bc0000 0x2440000>;
+                       };
+               };
+       };
+};
+
 &rwdt {
        timeout-sec = <60>;
        status = "okay";
index 1284612..e7d1777 100644 (file)
                        compatible = "renesas,r8a774a1-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A774A1_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                                 <&cpg CPG_CORE R8A774A1_CLK_CANFD>,
                                 <&can_clk>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index a4b406a..f62d957 100644 (file)
                        compatible = "renesas,r8a774b1-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                                 <&cpg CPG_CORE R8A774B1_CLK_CANFD>,
                                 <&can_clk>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 4e72e4f..5a6ea08 100644 (file)
 
        ports {
                port@0 {
-                       endpoint {
+                       du_out_rgb: endpoint {
                                remote-endpoint = <&tda19988_in>;
                        };
                };
index e123c8d..b6aeb22 100644 (file)
                        compatible = "renesas,r8a774c0-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A774C0_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                                 <&cpg CPG_CORE R8A774C0_CLK_CANFD>,
                                 <&can_clk>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
 
                                port@1 {
 
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
 
                                port@1 {
                                        reg = <1>;
-                                       lvds1_out: endpoint {
-                                       };
                                };
                        };
                };
index 989c1c0..8ec5909 100644 (file)
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                                 <&cpg CPG_CORE R8A774E1_CLK_CANFD>,
                                 <&can_clk>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 4e87e87..a297af2 100644 (file)
                rwdt: watchdog@e6020000 {
                        compatible = "renesas,r8a7795-wdt", "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                               <&cpg CPG_CORE R8A7795_CLK_CANFD>,
                               <&can_clk>;
                        status = "disabled";
                };
 
+               rpc: spi@ee200000 {
+                       compatible = "renesas,r8a7795-rpc-if",
+                                    "renesas,rcar-gen3-rpc-if";
+                       reg = <0 0xee200000 0 0x200>,
+                             <0 0x08000000 0 0x04000000>,
+                             <0 0xee208000 0 0x100>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 917>;
+                       power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+                       resets = <&cpg 917>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                sata: sata@ee300000 {
                        compatible = "renesas,sata-r8a7795",
                                     "renesas,rcar-gen3-sata";
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 6f79da8..4159c23 100644 (file)
                        compatible = "renesas,r8a7796-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                               <&cpg CPG_CORE R8A7796_CLK_CANFD>,
                               <&can_clk>;
                        status = "disabled";
                };
 
+               rpc: spi@ee200000 {
+                       compatible = "renesas,r8a7796-rpc-if",
+                                    "renesas,rcar-gen3-rpc-if";
+                       reg = <0 0xee200000 0 0x200>,
+                             <0 0x08000000 0 0x04000000>,
+                             <0 0xee208000 0 0x100>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 917>;
+                       power-domains = <&sysc R8A7796_PD_ALWAYS_ON>;
+                       resets = <&cpg 917>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@f1010000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 68cbbb3..3c744b7 100644 (file)
                        compatible = "renesas,r8a77961-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        status = "disabled";
                };
 
+               canfd: can@e66c0000 {
+                       compatible = "renesas,r8a77961-canfd",
+                                    "renesas,rcar-gen3-canfd";
+                       reg = <0 0xe66c0000 0 0x8000>;
+                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
+                                  <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
+                       clocks = <&cpg CPG_MOD 914>,
+                              <&cpg CPG_CORE R8A77961_CLK_CANFD>,
+                              <&can_clk>;
+                       clock-names = "fck", "canfd", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R8A77961_CLK_CANFD>;
+                       assigned-clock-rates = <40000000>;
+                       power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
+                       resets = <&cpg 914>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+
+                       channel1 {
+                               status = "disabled";
+                       };
+               };
+
                pwm0: pwm@e6e30000 {
                        compatible = "renesas,pwm-r8a77961", "renesas,pwm-rcar";
                        reg = <0 0xe6e30000 0 8>;
                        status = "disabled";
                };
 
+               rpc: spi@ee200000 {
+                       compatible = "renesas,r8a77961-rpc-if",
+                                    "renesas,rcar-gen3-rpc-if";
+                       reg = <0 0xee200000 0 0x200>,
+                             <0 0x08000000 0 0x04000000>,
+                             <0 0xee208000 0 0x100>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 917>;
+                       power-domains = <&sysc R8A77961_PD_ALWAYS_ON>;
+                       resets = <&cpg 917>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@f1010000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 9f858af..21a5e1c 100644 (file)
                        compatible = "renesas,r8a77965-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                               <&cpg CPG_CORE R8A77965_CLK_CANFD>,
                               <&can_clk>;
                        status = "disabled";
                };
 
+               rpc: spi@ee200000 {
+                       compatible = "renesas,r8a77965-rpc-if",
+                                    "renesas,rcar-gen3-rpc-if";
+                       reg = <0 0xee200000 0 0x200>,
+                             <0 0x08000000 0 0x04000000>,
+                             <0 0xee208000 0 0x100>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 917>;
+                       power-domains = <&sysc R8A77965_PD_ALWAYS_ON>;
+                       resets = <&cpg 917>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                sata: sata@ee300000 {
                        compatible = "renesas,sata-r8a77965",
                                     "renesas,rcar-gen3-sata";
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
                                port@1 {
                                        reg = <1>;
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 517892c..2703ef3 100644 (file)
                        compatible = "renesas,r8a77970-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77970_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                                 <&cpg CPG_CORE R8A77970_CLK_CANFD>,
                                 <&can_clk>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
 
                                port@1 {
                                };
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 347c068..8594be7 100644 (file)
                        compatible = "renesas,r8a77980-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                                 <&cpg CPG_CORE R8A77980_CLK_CANFD>,
                                 <&can_clk>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
 
                                port@1 {
 
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
index 7e0f1aa..d330212 100644 (file)
                        compatible = "renesas,r8a77990-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                               <&cpg CPG_CORE R8A77990_CLK_CANFD>,
                               <&can_clk>;
                        status = "disabled";
                };
 
+               rpc: spi@ee200000 {
+                       compatible = "renesas,r8a77990-rpc-if",
+                                    "renesas,rcar-gen3-rpc-if";
+                       reg = <0 0xee200000 0 0x200>,
+                             <0 0x08000000 0 0x04000000>,
+                             <0 0xee208000 0 0x100>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 917>;
+                       power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+                       resets = <&cpg 917>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@f1010000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
 
                                port@1 {
 
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
 
                                port@1 {
                                        reg = <1>;
-                                       lvds1_out: endpoint {
-                                       };
                                };
                        };
                };
index cac1f94..f040d03 100644 (file)
@@ -94,6 +94,7 @@
                        compatible = "renesas,r8a77995-wdt",
                                     "renesas,rcar-gen3-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 402>;
                        power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
                        resets = <&cpg 402>;
                        reg = <0 0xe66c0000 0 0x8000>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
                                   <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
                        clocks = <&cpg CPG_MOD 914>,
                               <&cpg CPG_CORE R8A77995_CLK_CANFD>,
                               <&can_clk>;
                        status = "disabled";
                };
 
+               rpc: spi@ee200000 {
+                       compatible = "renesas,r8a77995-rpc-if",
+                                    "renesas,rcar-gen3-rpc-if";
+                       reg = <0 0xee200000 0 0x200>,
+                             <0 0x08000000 0 0x04000000>,
+                             <0 0xee208000 0 0x100>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 917>;
+                       power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
+                       resets = <&cpg 917>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@f1010000 {
                        compatible = "arm,gic-400";
                        #interrupt-cells = <3>;
 
                                port@0 {
                                        reg = <0>;
-                                       du_out_rgb: endpoint {
-                                       };
                                };
 
                                port@1 {
 
                                port@1 {
                                        reg = <1>;
-                                       lvds0_out: endpoint {
-                                       };
                                };
                        };
                };
 
                                port@1 {
                                        reg = <1>;
-                                       lvds1_out: endpoint {
-                                       };
                                };
                        };
                };
index 6af3f4f..53c4a26 100644 (file)
        clock-frequency = <400000>;
 
        bridge@2c {
+               pinctrl-0 = <&irq0_pins>;
+               pinctrl-names = "default";
+
                compatible = "ti,sn65dsi86";
                reg = <0x2c>;
 
                clocks = <&sn65dsi86_refclk>;
                clock-names = "refclk";
 
-               interrupt-parent = <&gpio1>;
-               interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-parent = <&intc_ex>;
+               interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
 
                vccio-supply = <&reg_1p8v>;
                vpll-supply = <&reg_1p8v>;
                function = "i2c6";
        };
 
+       irq0_pins: irq0 {
+               groups = "intc_ex_irq0";
+               function = "intc_ex";
+       };
+
        keys_pins: keys {
                pins = "GP_6_18", "GP_6_19", "GP_6_20";
                bias-pull-up;
index e46dc9a..b2e67b8 100644 (file)
        };
 };
 
+&canfd {
+       pinctrl-0 = <&canfd0_pins>, <&canfd1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       channel0 {
+               status = "okay";
+       };
+
+       channel1 {
+               status = "okay";
+       };
+};
+
 &i2c0 {
        eeprom@51 {
                compatible = "rohm,br24g01", "atmel,24c01";
                };
 
        };
+
+       canfd0_pins: canfd0 {
+               groups = "canfd0_data";
+               function = "canfd0";
+       };
+
+       canfd1_pins: canfd1 {
+               groups = "canfd1_data";
+               function = "canfd1";
+       };
 };
index c4be288..b973150 100644 (file)
                i2c6 = &i2c6;
        };
 
+       /* External CAN clock - to be overridden by boards that provide it */
+       can_clk: can {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -79,8 +86,9 @@
 
                rwdt: watchdog@e6020000 {
                        compatible = "renesas,r8a779a0-wdt",
-                                    "renesas,rcar-gen3-wdt";
+                                    "renesas,rcar-gen4-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 907>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                        resets = <&cpg 907>;
 
                i2c0: i2c@e6500000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe6500000 0 0x40>;
                        interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 518>;
 
                i2c1: i2c@e6508000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe6508000 0 0x40>;
                        interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 519>;
 
                i2c2: i2c@e6510000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe6510000 0 0x40>;
                        interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 520>;
 
                i2c3: i2c@e66d0000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe66d0000 0 0x40>;
                        interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 521>;
 
                i2c4: i2c@e66d8000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe66d8000 0 0x40>;
                        interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 522>;
 
                i2c5: i2c@e66e0000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe66e0000 0 0x40>;
                        interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 523>;
 
                i2c6: i2c@e66e8000 {
                        compatible = "renesas,i2c-r8a779a0",
-                                    "renesas,rcar-gen3-i2c";
+                                    "renesas,rcar-gen4-i2c";
                        reg = <0 0xe66e8000 0 0x40>;
                        interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 524>;
 
                hscif0: serial@e6540000 {
                        compatible = "renesas,hscif-r8a779a0",
-                                    "renesas,rcar-gen3-hscif", "renesas,hscif";
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
                        reg = <0 0xe6540000 0 0x60>;
                        interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 514>,
 
                hscif1: serial@e6550000 {
                        compatible = "renesas,hscif-r8a779a0",
-                                    "renesas,rcar-gen3-hscif", "renesas,hscif";
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
                        reg = <0 0xe6550000 0 0x60>;
                        interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 515>,
 
                hscif2: serial@e6560000 {
                        compatible = "renesas,hscif-r8a779a0",
-                                    "renesas,rcar-gen3-hscif", "renesas,hscif";
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
                        reg = <0 0xe6560000 0 0x60>;
                        interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 516>,
 
                hscif3: serial@e66a0000 {
                        compatible = "renesas,hscif-r8a779a0",
-                                    "renesas,rcar-gen3-hscif", "renesas,hscif";
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
                        reg = <0 0xe66a0000 0 0x60>;
                        interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 517>,
                        status = "disabled";
                };
 
+               canfd: can@e6660000 {
+                       compatible = "renesas,r8a779a0-canfd";
+                       reg = <0 0xe6660000 0 0x8000>;
+                       interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                                       <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "ch_int", "g_int";
+                       clocks = <&cpg CPG_MOD 328>,
+                                <&cpg CPG_CORE R8A779A0_CLK_CANFD>,
+                                <&can_clk>;
+                       clock-names = "fck", "canfd", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R8A779A0_CLK_CANFD>;
+                       assigned-clock-rates = <80000000>;
+                       power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
+                       resets = <&cpg 328>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+
+                       channel1 {
+                               status = "disabled";
+                       };
+
+                       channel2 {
+                               status = "disabled";
+                       };
+
+                       channel3 {
+                               status = "disabled";
+                       };
+
+                       channel4 {
+                               status = "disabled";
+                       };
+
+                       channel5 {
+                               status = "disabled";
+                       };
+
+                       channel6 {
+                               status = "disabled";
+                       };
+
+                       channel7 {
+                               status = "disabled";
+                       };
+               };
+
                avb0: ethernet@e6800000 {
                        compatible = "renesas,etheravb-r8a779a0",
                                     "renesas,etheravb-rcar-gen3";
 
                scif0: serial@e6e60000 {
                        compatible = "renesas,scif-r8a779a0",
-                                    "renesas,rcar-gen3-scif", "renesas,scif";
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
                        reg = <0 0xe6e60000 0 64>;
                        interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 702>,
 
                scif1: serial@e6e68000 {
                        compatible = "renesas,scif-r8a779a0",
-                                    "renesas,rcar-gen3-scif", "renesas,scif";
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
                        reg = <0 0xe6e68000 0 64>;
                        interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 703>,
 
                scif3: serial@e6c50000 {
                        compatible = "renesas,scif-r8a779a0",
-                                    "renesas,rcar-gen3-scif", "renesas,scif";
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
                        reg = <0 0xe6c50000 0 64>;
                        interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 704>,
 
                scif4: serial@e6c40000 {
                        compatible = "renesas,scif-r8a779a0",
-                                    "renesas,rcar-gen3-scif", "renesas,scif";
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
                        reg = <0 0xe6c40000 0 64>;
                        interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 705>,
                };
 
                dmac1: dma-controller@e7350000 {
-                       compatible = "renesas,dmac-r8a779a0";
+                       compatible = "renesas,dmac-r8a779a0",
+                                    "renesas,rcar-gen4-dmac";
                        reg = <0 0xe7350000 0 0x1000>,
                              <0 0xe7300000 0 0x10000>;
                        interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                dmac2: dma-controller@e7351000 {
-                       compatible = "renesas,dmac-r8a779a0";
+                       compatible = "renesas,dmac-r8a779a0",
+                                    "renesas,rcar-gen4-dmac";
                        reg = <0 0xe7351000 0 0x1000>,
                              <0 0xe7310000 0 0x10000>;
                        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
                };
 
                ipmmu_rt0: iommu@ee480000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xee480000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 10>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_rt1: iommu@ee4c0000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xee4c0000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 19>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_ds0: iommu@eed00000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeed00000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 0>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_ds1: iommu@eed40000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeed40000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 1>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_ir: iommu@eed80000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeed80000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 3>;
                        power-domains = <&sysc R8A779A0_PD_A3IR>;
                };
 
                ipmmu_vc0: iommu@eedc0000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeedc0000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 12>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_vi0: iommu@eee80000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeee80000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 14>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_vi1: iommu@eeec0000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeeec0000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 15>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_3dg: iommu@eee00000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeee00000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 6>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_vip0: iommu@eef00000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeef00000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 5>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_vip1: iommu@eef40000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeef40000 0 0x20000>;
                        renesas,ipmmu-main = <&ipmmu_mm 11>;
                        power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
                };
 
                ipmmu_mm: iommu@eefc0000 {
-                       compatible = "renesas,ipmmu-r8a779a0";
+                       compatible = "renesas,ipmmu-r8a779a0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
                        reg = <0 0xeefc0000 0 0x20000>;
                        interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
index 6e07c54..41aa859 100644 (file)
        clock-frequency = <32768>;
 };
 
+&i2c4 {
+       pinctrl-0 = <&i2c4_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+       clock-frequency = <400000>;
+
+       eeprom@50 {
+               compatible = "rohm,br24g01", "atmel,24c01";
+               label = "cpu-board";
+               reg = <0x50>;
+               pagesize = <8>;
+       };
+};
+
 &pfc {
        pinctrl-0 = <&scif_clk_pins>;
        pinctrl-names = "default";
 
+       i2c4_pins: i2c4 {
+               groups = "i2c4";
+               function = "i2c4";
+       };
+
        scif3_pins: scif3 {
                groups = "scif3_data", "scif3_ctrl";
                function = "scif3";
diff --git a/arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi b/arch/arm64/boot/dts/renesas/r8a779f0-spider-ethernet.dtsi
new file mode 100644 (file)
index 0000000..15e8d1e
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the Spider Ethernet sub-board
+ *
+ * Copyright (C) 2021 Renesas Electronics Corp.
+ */
+
+&i2c4 {
+       eeprom@52 {
+               compatible = "rohm,br24g01", "atmel,24c01";
+               label = "ethernet-sub-board";
+               reg = <0x52>;
+               pagesize = <8>;
+       };
+};
index f286254..2e3b719 100644 (file)
@@ -7,6 +7,7 @@
 
 /dts-v1/;
 #include "r8a779f0-spider-cpu.dtsi"
+#include "r8a779f0-spider-ethernet.dtsi"
 
 / {
        model = "Renesas Spider CPU and Breakout boards based on r8a779f0";
                stdout-path = "serial0:115200n8";
        };
 };
+
+&i2c4 {
+       eeprom@51 {
+               compatible = "rohm,br24g01", "atmel,24c01";
+               label = "breakout-board";
+               reg = <0x51>;
+               pagesize = <8>;
+       };
+};
index f4e5498..df46fb8 100644 (file)
@@ -63,6 +63,7 @@
                        compatible = "renesas,r8a779f0-wdt",
                                     "renesas,rcar-gen4-wdt";
                        reg = <0 0xe6020000 0 0x0c>;
+                       interrupts = <GIC_SPI 515 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&cpg CPG_MOD 907>;
                        power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
                        resets = <&cpg 907>;
                              <0 0xe6051000 0 0x16c>, <0 0xe6051800 0 0x16c>;
                };
 
+               gpio0: gpio@e6050180 {
+                       compatible = "renesas,gpio-r8a779f0",
+                                    "renesas,rcar-gen4-gpio";
+                       reg = <0 0xe6050180 0 0x54>;
+                       interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 915>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 915>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pfc 0 0 21>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio1: gpio@e6050980 {
+                       compatible = "renesas,gpio-r8a779f0",
+                                    "renesas,rcar-gen4-gpio";
+                       reg = <0 0xe6050980 0 0x54>;
+                       interrupts = <GIC_SPI 823 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 915>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 915>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pfc 0 32 25>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio2: gpio@e6051180 {
+                       compatible = "renesas,gpio-r8a779f0",
+                                    "renesas,rcar-gen4-gpio";
+                       reg = <0 0xe6051180 0 0x54>;
+                       interrupts = <GIC_SPI 824 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 915>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 915>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pfc 0 64 17>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
+               gpio3: gpio@e6051980 {
+                       compatible = "renesas,gpio-r8a779f0",
+                                    "renesas,rcar-gen4-gpio";
+                       reg = <0 0xe6051980 0 0x54>;
+                       interrupts = <GIC_SPI 825 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 915>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 915>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pfc 0 96 19>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+               };
+
                cpg: clock-controller@e6150000 {
                        compatible = "renesas,r8a779f0-cpg-mssr";
                        reg = <0 0xe6150000 0 0x4000>;
                        #power-domain-cells = <1>;
                };
 
+               i2c0: i2c@e6500000 {
+                       compatible = "renesas,i2c-r8a779f0",
+                                    "renesas,rcar-gen4-i2c";
+                       reg = <0 0xe6500000 0 0x40>;
+                       interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 518>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 518>;
+                       dmas = <&dmac0 0x91>, <&dmac0 0x90>,
+                              <&dmac1 0x91>, <&dmac1 0x90>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@e6508000 {
+                       compatible = "renesas,i2c-r8a779f0",
+                                    "renesas,rcar-gen4-i2c";
+                       reg = <0 0xe6508000 0 0x40>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 519>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 519>;
+                       dmas = <&dmac0 0x93>, <&dmac0 0x92>,
+                              <&dmac1 0x93>, <&dmac1 0x92>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@e6510000 {
+                       compatible = "renesas,i2c-r8a779f0",
+                                    "renesas,rcar-gen4-i2c";
+                       reg = <0 0xe6510000 0 0x40>;
+                       interrupts = <0 240 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 520>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 520>;
+                       dmas = <&dmac0 0x95>, <&dmac0 0x94>,
+                              <&dmac1 0x95>, <&dmac1 0x94>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@e66d0000 {
+                       compatible = "renesas,i2c-r8a779f0",
+                                    "renesas,rcar-gen4-i2c";
+                       reg = <0 0xe66d0000 0 0x40>;
+                       interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 521>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 521>;
+                       dmas = <&dmac0 0x97>, <&dmac0 0x96>,
+                              <&dmac1 0x97>, <&dmac1 0x96>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@e66d8000 {
+                       compatible = "renesas,i2c-r8a779f0",
+                                    "renesas,rcar-gen4-i2c";
+                       reg = <0 0xe66d8000 0 0x40>;
+                       interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 522>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 522>;
+                       dmas = <&dmac0 0x99>, <&dmac0 0x98>,
+                              <&dmac1 0x99>, <&dmac1 0x98>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               i2c5: i2c@e66e0000 {
+                       compatible = "renesas,i2c-r8a779f0",
+                                    "renesas,rcar-gen4-i2c";
+                       reg = <0 0xe66e0000 0 0x40>;
+                       interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 523>;
+                       power-domains = <&sysc R8A779F0_PD_ALWAYS_ON>;
+                       resets = <&cpg 523>;
+                       dmas = <&dmac0 0x9b>, <&dmac0 0x9a>,
+                              <&dmac1 0x9b>, <&dmac1 0x9a>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       i2c-scl-internal-delay-ns = <110>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                scif3: serial@e6c50000 {
                        compatible = "renesas,scif-r8a779f0",
                                     "renesas,rcar-gen4-scif", "renesas,scif";
diff --git a/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi b/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk-cpu.dtsi
new file mode 100644 (file)
index 0000000..ea4ae4b
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the White Hawk CPU board
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+#include "r8a779g0.dtsi"
+
+/ {
+       model = "Renesas White Hawk CPU board";
+       compatible = "renesas,white-hawk-cpu", "renesas,r8a779g0";
+
+       memory@48000000 {
+               device_type = "memory";
+               /* first 128MB is reserved for secure area. */
+               reg = <0x0 0x48000000 0x0 0x78000000>;
+       };
+
+       memory@480000000 {
+               device_type = "memory";
+               reg = <0x4 0x80000000 0x0 0x80000000>;
+       };
+
+       memory@600000000 {
+               device_type = "memory";
+               reg = <0x6 0x00000000 0x1 0x00000000>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <16666666>;
+};
+
+&extalr_clk {
+       clock-frequency = <32768>;
+};
+
+&hscif0 {
+       status = "okay";
+};
+
+&scif_clk {
+       clock-frequency = <24000000>;
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts b/arch/arm64/boot/dts/renesas/r8a779g0-white-hawk.dts
new file mode 100644 (file)
index 0000000..bc0ac10
--- /dev/null
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the White Hawk CPU and BreakOut boards
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+#include "r8a779g0-white-hawk-cpu.dtsi"
+
+/ {
+       model = "Renesas White Hawk CPU and Breakout boards based on r8a779g0";
+       compatible = "renesas,white-hawk-breakout", "renesas,white-hawk-cpu", "renesas,r8a779g0";
+
+       aliases {
+               serial0 = &hscif0;
+       };
+
+       chosen {
+               stdout-path = "serial0:921600n8";
+       };
+};
diff --git a/arch/arm64/boot/dts/renesas/r8a779g0.dtsi b/arch/arm64/boot/dts/renesas/r8a779g0.dtsi
new file mode 100644 (file)
index 0000000..7cbb0de
--- /dev/null
@@ -0,0 +1,122 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the R-Car V4H (R8A779G0) SoC
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/clock/r8a779g0-cpg-mssr.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/power/r8a779g0-sysc.h>
+
+/ {
+       compatible = "renesas,r8a779g0";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               a76_0: cpu@0 {
+                       compatible = "arm,cortex-a76";
+                       reg = <0>;
+                       device_type = "cpu";
+                       power-domains = <&sysc R8A779G0_PD_A1E0D0C0>;
+               };
+       };
+
+       extal_clk: extal {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       extalr_clk: extalr {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       pmu_a76 {
+               compatible = "arm,cortex-a76-pmu";
+               interrupts-extended = <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       /* External SCIF clock - to be overridden by boards that provide it */
+       scif_clk: scif {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               cpg: clock-controller@e6150000 {
+                       compatible = "renesas,r8a779g0-cpg-mssr";
+                       reg = <0 0xe6150000 0 0x4000>;
+                       clocks = <&extal_clk>, <&extalr_clk>;
+                       clock-names = "extal", "extalr";
+                       #clock-cells = <2>;
+                       #power-domain-cells = <0>;
+                       #reset-cells = <1>;
+               };
+
+               rst: reset-controller@e6160000 {
+                       compatible = "renesas,r8a779g0-rst";
+                       reg = <0 0xe6160000 0 0x4000>;
+               };
+
+               sysc: system-controller@e6180000 {
+                       compatible = "renesas,r8a779g0-sysc";
+                       reg = <0 0xe6180000 0 0x4000>;
+                       #power-domain-cells = <1>;
+               };
+
+               hscif0: serial@e6540000 {
+                       compatible = "renesas,hscif-r8a779g0",
+                                    "renesas,rcar-gen4-hscif",
+                                    "renesas,hscif";
+                       reg = <0 0xe6540000 0 96>;
+                       interrupts = <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 514>,
+                                <&cpg CPG_CORE R8A779G0_CLK_S0D3_PER>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>;
+                       resets = <&cpg 514>;
+                       status = "disabled";
+               };
+
+               gic: interrupt-controller@f1000000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x0 0xf1000000 0 0x20000>,
+                             <0x0 0xf1060000 0 0x110000>;
+                       interrupts = <GIC_PPI 9
+                                     (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+               };
+
+               prr: chipid@fff00044 {
+                       compatible = "renesas,prr";
+                       reg = <0 0xfff00044 0 4>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+};
diff --git a/arch/arm64/boot/dts/renesas/r9a07g043.dtsi b/arch/arm64/boot/dts/renesas/r9a07g043.dtsi
new file mode 100644 (file)
index 0000000..b31fb71
--- /dev/null
@@ -0,0 +1,885 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/G2UL SoC
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/r9a07g043-cpg.h>
+
+/ {
+       compatible = "renesas,r9a07g043";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       audio_clk1: audio-clk1 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by boards that provide it */
+               clock-frequency = <0>;
+       };
+
+       audio_clk2: audio-clk2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by boards that provide it */
+               clock-frequency = <0>;
+       };
+
+       /* External CAN clock - to be overridden by boards that provide it */
+       can_clk: can-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
+       /* clock can be either from exclk or crystal oscillator (XIN/XOUT) */
+       extal_clk: extal-clk {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       cluster0_opp: opp-table-0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-125000000 {
+                       opp-hz = /bits/ 64 <125000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-250000000 {
+                       opp-hz = /bits/ 64 <250000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-1000000000 {
+                       opp-hz = /bits/ 64 <1000000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+                       opp-suspend;
+               };
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a55";
+                       reg = <0>;
+                       device_type = "cpu";
+                       #cooling-cells = <2>;
+                       next-level-cache = <&L3_CA55>;
+                       enable-method = "psci";
+                       clocks = <&cpg CPG_CORE R9A07G043_CLK_I>;
+                       operating-points-v2 = <&cluster0_opp>;
+               };
+
+               L3_CA55: cache-controller-0 {
+                       compatible = "cache";
+                       cache-unified;
+                       cache-size = <0x40000>;
+               };
+       };
+
+       psci {
+               compatible = "arm,psci-1.0", "arm,psci-0.2";
+               method = "smc";
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               ssi0: ssi@10049c00 {
+                       compatible = "renesas,r9a07g043-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x10049c00 0 0x400>;
+                       interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 328 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 329 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G043_SSI0_PCLK2>,
+                                <&cpg CPG_MOD R9A07G043_SSI0_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G043_SSI0_RST_M2_REG>;
+                       dmas = <&dmac 0x2655>, <&dmac 0x2656>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               ssi1: ssi@1004a000 {
+                       compatible = "renesas,r9a07g043-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x1004a000 0 0x400>;
+                       interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 331 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 332 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 333 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G043_SSI1_PCLK2>,
+                                <&cpg CPG_MOD R9A07G043_SSI1_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G043_SSI1_RST_M2_REG>;
+                       dmas = <&dmac 0x2659>, <&dmac 0x265a>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               ssi2: ssi@1004a400 {
+                       compatible = "renesas,r9a07g043-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x1004a400 0 0x400>;
+                       interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 336 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 337 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G043_SSI2_PCLK2>,
+                                <&cpg CPG_MOD R9A07G043_SSI2_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G043_SSI2_RST_M2_REG>;
+                       dmas = <&dmac 0x265f>;
+                       dma-names = "rt";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               ssi3: ssi@1004a800 {
+                       compatible = "renesas,r9a07g043-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x1004a800 0 0x400>;
+                       interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 339 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 341 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G043_SSI3_PCLK2>,
+                                <&cpg CPG_MOD R9A07G043_SSI3_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G043_SSI3_RST_M2_REG>;
+                       dmas = <&dmac 0x2661>, <&dmac 0x2662>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi0: spi@1004ac00 {
+                       compatible = "renesas,r9a07g043-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004ac00 0 0x400>;
+                       interrupts = <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G043_RSPI0_CLKB>;
+                       resets = <&cpg R9A07G043_RSPI0_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi1: spi@1004b000 {
+                       compatible = "renesas,r9a07g043-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004b000 0 0x400>;
+                       interrupts = <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G043_RSPI1_CLKB>;
+                       resets = <&cpg R9A07G043_RSPI1_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi2: spi@1004b400 {
+                       compatible = "renesas,r9a07g043-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004b400 0 0x400>;
+                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G043_RSPI2_CLKB>;
+                       resets = <&cpg R9A07G043_RSPI2_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               scif0: serial@1004b800 {
+                       compatible = "renesas,scif-r9a07g043",
+                                    "renesas,scif-r9a07g044";
+                       reg = <0 0x1004b800 0 0x400>;
+                       interrupts = <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 382 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCIF0_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCIF0_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif1: serial@1004bc00 {
+                       compatible = "renesas,scif-r9a07g043",
+                                    "renesas,scif-r9a07g044";
+                       reg = <0 0x1004bc00 0 0x400>;
+                       interrupts = <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 388 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 389 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCIF1_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCIF1_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif2: serial@1004c000 {
+                       compatible = "renesas,scif-r9a07g043",
+                                    "renesas,scif-r9a07g044";
+                       reg = <0 0x1004c000 0 0x400>;
+                       interrupts = <GIC_SPI 390 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCIF2_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCIF2_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif3: serial@1004c400 {
+                       compatible = "renesas,scif-r9a07g043",
+                                    "renesas,scif-r9a07g044";
+                       reg = <0 0x1004c400 0 0x400>;
+                       interrupts = <GIC_SPI 395 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 397 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 398 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 396 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 399 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCIF3_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCIF3_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               scif4: serial@1004c800 {
+                       compatible = "renesas,scif-r9a07g043",
+                                    "renesas,scif-r9a07g044";
+                       reg = <0 0x1004c800 0 0x400>;
+                       interrupts = <GIC_SPI 400 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 402 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 403 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 401 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 404 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi",
+                                         "bri", "dri", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCIF4_CLK_PCK>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCIF4_RST_SYSTEM_N>;
+                       status = "disabled";
+               };
+
+               sci0: serial@1004d000 {
+                       compatible = "renesas,r9a07g043-sci", "renesas,sci";
+                       reg = <0 0x1004d000 0 0x400>;
+                       interrupts = <GIC_SPI 405 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 406 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 407 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 408 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCI0_CLKP>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCI0_RST>;
+                       status = "disabled";
+               };
+
+               sci1: serial@1004d400 {
+                       compatible = "renesas,r9a07g043-sci", "renesas,sci";
+                       reg = <0 0x1004d400 0 0x400>;
+                       interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 410 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 411 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 412 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "tei";
+                       clocks = <&cpg CPG_MOD R9A07G043_SCI1_CLKP>;
+                       clock-names = "fck";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_SCI1_RST>;
+                       status = "disabled";
+               };
+
+               canfd: can@10050000 {
+                       compatible = "renesas,r9a07g043-canfd", "renesas,rzg2l-canfd";
+                       reg = <0 0x10050000 0 0x8000>;
+                       interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "g_err", "g_recc",
+                                         "ch0_err", "ch0_rec", "ch0_trx",
+                                         "ch1_err", "ch1_rec", "ch1_trx";
+                       clocks = <&cpg CPG_MOD R9A07G043_CANFD_PCLK>,
+                                <&cpg CPG_CORE R9A07G043_CLK_P0_DIV2>,
+                                <&can_clk>;
+                       clock-names = "fck", "canfd", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R9A07G043_CLK_P0_DIV2>;
+                       assigned-clock-rates = <50000000>;
+                       resets = <&cpg R9A07G043_CANFD_RSTP_N>,
+                                <&cpg R9A07G043_CANFD_RSTC_N>;
+                       reset-names = "rstp_n", "rstc_n";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+                       channel1 {
+                               status = "disabled";
+                       };
+               };
+
+               i2c0: i2c@10058000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g043", "renesas,riic-rz";
+                       reg = <0 0x10058000 0 0x400>;
+                       interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 348 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 349 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G043_I2C0_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G043_I2C0_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@10058400 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g043", "renesas,riic-rz";
+                       reg = <0 0x10058400 0 0x400>;
+                       interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 356 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 357 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G043_I2C1_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G043_I2C1_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@10058800 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g043", "renesas,riic-rz";
+                       reg = <0 0x10058800 0 0x400>;
+                       interrupts = <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G043_I2C2_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G043_I2C2_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@10058c00 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g043", "renesas,riic-rz";
+                       reg = <0 0x10058c00 0 0x400>;
+                       interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 372 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 373 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G043_I2C3_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G043_I2C3_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               adc: adc@10059000 {
+                       reg = <0 0x10059000 0 0x400>;
+                       /* place holder */
+               };
+
+               tsu: thermal@10059400 {
+                       compatible = "renesas,r9a07g043-tsu",
+                                    "renesas,rzg2l-tsu";
+                       reg = <0 0x10059400 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G043_TSU_PCLK>;
+                       resets = <&cpg R9A07G043_TSU_PRESETN>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               sbc: spi@10060000 {
+                       compatible = "renesas,r9a07g043-rpc-if",
+                                    "renesas,rzg2l-rpc-if";
+                       reg = <0 0x10060000 0 0x10000>,
+                             <0 0x20000000 0 0x10000000>,
+                             <0 0x10070000 0 0x10000>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       clocks = <&cpg CPG_MOD R9A07G043_SPI_CLK2>,
+                                <&cpg CPG_MOD R9A07G043_SPI_CLK>;
+                       resets = <&cpg R9A07G043_SPI_RST>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               cpg: clock-controller@11010000 {
+                       compatible = "renesas,r9a07g043-cpg";
+                       reg = <0 0x11010000 0 0x10000>;
+                       clocks = <&extal_clk>;
+                       clock-names = "extal";
+                       #clock-cells = <2>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <0>;
+               };
+
+               sysc: system-controller@11020000 {
+                       compatible = "renesas,r9a07g043-sysc";
+                       reg = <0 0x11020000 0 0x10000>;
+                       interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "lpm_int", "ca55stbydone_int",
+                                         "cm33stbyr_int", "ca55_deny";
+                       status = "disabled";
+               };
+
+               pinctrl: pinctrl@11030000 {
+                       compatible = "renesas,r9a07g043-pinctrl";
+                       reg = <0 0x11030000 0 0x10000>;
+                       gpio-controller;
+                       #gpio-cells = <2>;
+                       gpio-ranges = <&pinctrl 0 0 152>;
+                       clocks = <&cpg CPG_MOD R9A07G043_GPIO_HCLK>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_GPIO_RSTN>,
+                                <&cpg R9A07G043_GPIO_PORT_RESETN>,
+                                <&cpg R9A07G043_GPIO_SPARE_RESETN>;
+               };
+
+               dmac: dma-controller@11820000 {
+                       compatible = "renesas,r9a07g043-dmac",
+                                    "renesas,rz-dmac";
+                       reg = <0 0x11820000 0 0x10000>,
+                             <0 0x11830000 0 0x10000>;
+                       interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 125 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 126 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 127 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 128 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 131 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 132 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 133 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 134 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 135 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 136 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 137 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 138 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 139 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 140 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "error",
+                                         "ch0", "ch1", "ch2", "ch3",
+                                         "ch4", "ch5", "ch6", "ch7",
+                                         "ch8", "ch9", "ch10", "ch11",
+                                         "ch12", "ch13", "ch14", "ch15";
+                       clocks = <&cpg CPG_MOD R9A07G043_DMAC_ACLK>,
+                                <&cpg CPG_MOD R9A07G043_DMAC_PCLK>;
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G043_DMAC_ARESETN>,
+                                <&cpg R9A07G043_DMAC_RST_ASYNC>;
+                       #dma-cells = <1>;
+                       dma-channels = <16>;
+               };
+
+               gic: interrupt-controller@11900000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x0 0x11900000 0 0x40000>,
+                             <0x0 0x11940000 0 0x60000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_LOW>;
+               };
+
+               sdhi0: mmc@11c00000  {
+                       compatible = "renesas,sdhi-r9a07g043",
+                                    "renesas,rcar-gen3-sdhi";
+                       reg = <0x0 0x11c00000 0 0x10000>;
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_SDHI0_IMCLK>,
+                                <&cpg CPG_MOD R9A07G043_SDHI0_CLK_HS>,
+                                <&cpg CPG_MOD R9A07G043_SDHI0_IMCLK2>,
+                                <&cpg CPG_MOD R9A07G043_SDHI0_ACLK>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg R9A07G043_SDHI0_IXRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               sdhi1: mmc@11c10000 {
+                       compatible = "renesas,sdhi-r9a07g043",
+                                    "renesas,rcar-gen3-sdhi";
+                       reg = <0x0 0x11c10000 0 0x10000>;
+                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_SDHI1_IMCLK>,
+                                <&cpg CPG_MOD R9A07G043_SDHI1_CLK_HS>,
+                                <&cpg CPG_MOD R9A07G043_SDHI1_IMCLK2>,
+                                <&cpg CPG_MOD R9A07G043_SDHI1_ACLK>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg R9A07G043_SDHI1_IXRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               eth0: ethernet@11c20000 {
+                       compatible = "renesas,r9a07g043-gbeth",
+                                    "renesas,rzg2l-gbeth";
+                       reg = <0 0x11c20000 0 0x10000>;
+                       interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mux", "fil", "arp_ns";
+                       phy-mode = "rgmii";
+                       clocks = <&cpg CPG_MOD R9A07G043_ETH0_CLK_AXI>,
+                                <&cpg CPG_MOD R9A07G043_ETH0_CLK_CHI>,
+                                <&cpg CPG_CORE R9A07G043_CLK_HP>;
+                       clock-names = "axi", "chi", "refclk";
+                       resets = <&cpg R9A07G043_ETH0_RST_HW_N>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               eth1: ethernet@11c30000 {
+                       compatible = "renesas,r9a07g043-gbeth",
+                                    "renesas,rzg2l-gbeth";
+                       reg = <0 0x11c30000 0 0x10000>;
+                       interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "mux", "fil", "arp_ns";
+                       phy-mode = "rgmii";
+                       clocks = <&cpg CPG_MOD R9A07G043_ETH1_CLK_AXI>,
+                                <&cpg CPG_MOD R9A07G043_ETH1_CLK_CHI>,
+                                <&cpg CPG_CORE R9A07G043_CLK_HP>;
+                       clock-names = "axi", "chi", "refclk";
+                       resets = <&cpg R9A07G043_ETH1_RST_HW_N>;
+                       power-domains = <&cpg>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               phyrst: usbphy-ctrl@11c40000 {
+                       compatible = "renesas,r9a07g043-usbphy-ctrl",
+                                    "renesas,rzg2l-usbphy-ctrl";
+                       reg = <0 0x11c40000 0 0x10000>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>;
+                       resets = <&cpg R9A07G043_USB_PRESETN>;
+                       power-domains = <&cpg>;
+                       #reset-cells = <1>;
+                       status = "disabled";
+               };
+
+               ohci0: usb@11c50000 {
+                       compatible = "generic-ohci";
+                       reg = <0 0x11c50000 0 0x100>;
+                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2H0_HCLK>;
+                       resets = <&phyrst 0>,
+                                <&cpg R9A07G043_USB_U2H0_HRESETN>;
+                       phys = <&usb2_phy0 1>;
+                       phy-names = "usb";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ohci1: usb@11c70000 {
+                       compatible = "generic-ohci";
+                       reg = <0 0x11c70000 0 0x100>;
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2H1_HCLK>;
+                       resets = <&phyrst 1>,
+                                <&cpg R9A07G043_USB_U2H1_HRESETN>;
+                       phys = <&usb2_phy1 1>;
+                       phy-names = "usb";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ehci0: usb@11c50100 {
+                       compatible = "generic-ehci";
+                       reg = <0 0x11c50100 0 0x100>;
+                       interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2H0_HCLK>;
+                       resets = <&phyrst 0>,
+                                <&cpg R9A07G043_USB_U2H0_HRESETN>;
+                       phys = <&usb2_phy0 2>;
+                       phy-names = "usb";
+                       companion = <&ohci0>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ehci1: usb@11c70100 {
+                       compatible = "generic-ehci";
+                       reg = <0 0x11c70100 0 0x100>;
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2H1_HCLK>;
+                       resets = <&phyrst 1>,
+                                <&cpg R9A07G043_USB_U2H1_HRESETN>;
+                       phys = <&usb2_phy1 2>;
+                       phy-names = "usb";
+                       companion = <&ohci1>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               usb2_phy0: usb-phy@11c50200 {
+                       compatible = "renesas,usb2-phy-r9a07g043",
+                                    "renesas,rzg2l-usb2-phy";
+                       reg = <0 0x11c50200 0 0x700>;
+                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2H0_HCLK>;
+                       resets = <&phyrst 0>;
+                       #phy-cells = <1>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               usb2_phy1: usb-phy@11c70200 {
+                       compatible = "renesas,usb2-phy-r9a07g043",
+                                    "renesas,rzg2l-usb2-phy";
+                       reg = <0 0x11c70200 0 0x700>;
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2H1_HCLK>;
+                       resets = <&phyrst 1>;
+                       #phy-cells = <1>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               hsusb: usb@11c60000 {
+                       compatible = "renesas,usbhs-r9a07g043",
+                                    "renesas,rza2-usbhs";
+                       reg = <0 0x11c60000 0 0x10000>;
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G043_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_USB_U2P_EXR_CPUCLK>;
+                       resets = <&phyrst 0>,
+                                <&cpg R9A07G043_USB_U2P_EXL_SYSRST>;
+                       renesas,buswait = <7>;
+                       phys = <&usb2_phy0 3>;
+                       phy-names = "usb";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt0: watchdog@12800800 {
+                       compatible = "renesas,r9a07g043-wdt",
+                                    "renesas,rzg2l-wdt";
+                       reg = <0 0x12800800 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G043_WDT0_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_WDT0_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G043_WDT0_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               wdt2: watchdog@12800400 {
+                       compatible = "renesas,r9a07g043-wdt",
+                                    "renesas,rzg2l-wdt";
+                       reg = <0 0x12800400 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G043_WDT2_PCLK>,
+                                <&cpg CPG_MOD R9A07G043_WDT2_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G043_WDT2_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm0: timer@12801000 {
+                       compatible = "renesas,r9a07g043-ostm",
+                                    "renesas,ostm";
+                       reg = <0x0 0x12801000 0x0 0x400>;
+                       interrupts = <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G043_OSTM0_PCLK>;
+                       resets = <&cpg R9A07G043_OSTM0_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm1: timer@12801400 {
+                       compatible = "renesas,r9a07g043-ostm",
+                                    "renesas,ostm";
+                       reg = <0x0 0x12801400 0x0 0x400>;
+                       interrupts = <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G043_OSTM1_PCLK>;
+                       resets = <&cpg R9A07G043_OSTM1_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               ostm2: timer@12801800 {
+                       compatible = "renesas,r9a07g043-ostm",
+                                    "renesas,ostm";
+                       reg = <0x0 0x12801800 0x0 0x400>;
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G043_OSTM2_PCLK>;
+                       resets = <&cpg R9A07G043_OSTM2_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsu 0>;
+                       sustainable-power = <717>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&target>;
+                                       cooling-device = <&cpu0 0 2>;
+                                       contribution = <1024>;
+                               };
+                       };
+
+                       trips {
+                               sensor_crit: sensor-crit {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+
+                               target: trip-point {
+                                       temperature = <100000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+};
diff --git a/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts b/arch/arm64/boot/dts/renesas/r9a07g043u11-smarc.dts
new file mode 100644 (file)
index 0000000..2d740bd
--- /dev/null
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/G2UL Type-1 SMARC EVK board
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+#include "r9a07g043.dtsi"
+#include "rzg2ul-smarc.dtsi"
+
+/ {
+       model = "Renesas SMARC EVK based on r9a07g043u11";
+       compatible = "renesas,smarc-evk", "renesas,r9a07g043u11", "renesas,r9a07g043";
+};
+
+&spi1 {
+       /delete-property/ pinctrl-0;
+       /delete-property/ pinctrl-names;
+       status = "disabled";
+};
index 19287cc..3652e51 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
-       audio_clk1: audio_clk1 {
+       audio_clk1: audio1-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by boards that provide it */
                clock-frequency = <0>;
        };
 
-       audio_clk2: audio_clk2 {
+       audio_clk2: audio2-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by boards that provide it */
        };
 
        /* External CAN clock - to be overridden by boards that provide it */
-       can_clk: can {
+       can_clk: can-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <0>;
        };
 
        /* clock can be either from exclk or crystal oscillator (XIN/XOUT) */
-       extal_clk: extal {
+       extal_clk: extal-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by the board */
index 5a5cea8..fc34058 100644 (file)
        model = "Renesas SMARC EVK based on r9a07g044c2";
        compatible = "renesas,smarc-evk", "renesas,r9a07g044c2", "renesas,r9a07g044";
 };
-
-&ehci0 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&ehci1 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&hsusb {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&i2c0 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&i2c1 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&i2c3 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&ohci0 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&ohci1 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&phyrst {
-       status = "disabled";
-};
-
-&spi1 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&ssi0 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&usb2_phy0 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
-
-&usb2_phy1 {
-       /delete-property/ pinctrl-0;
-       /delete-property/ pinctrl-names;
-       status = "disabled";
-};
index 5d39e76..4d6b9d7 100644 (file)
        #address-cells = <2>;
        #size-cells = <2>;
 
-       audio_clk1: audio_clk1 {
+       audio_clk1: audio1-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by boards that provide it */
                clock-frequency = <0>;
        };
 
-       audio_clk2: audio_clk2 {
+       audio_clk2: audio2-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by boards that provide it */
        };
 
        /* External CAN clock - to be overridden by boards that provide it */
-       can_clk: can {
+       can_clk: can-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <0>;
        };
 
        /* clock can be either from exclk or crystal oscillator (XIN/XOUT) */
-       extal_clk: extal {
+       extal_clk: extal-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                /* This value must be overridden by the board */
                clock-frequency = <0>;
        };
 
+       cluster0_opp: opp-table-0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp-150000000 {
+                       opp-hz = /bits/ 64 <150000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-300000000 {
+                       opp-hz = /bits/ 64 <300000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-600000000 {
+                       opp-hz = /bits/ 64 <600000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+               };
+               opp-1200000000 {
+                       opp-hz = /bits/ 64 <1200000000>;
+                       opp-microvolt = <1100000>;
+                       clock-latency-ns = <300000>;
+                       opp-suspend;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
@@ -65,6 +92,7 @@
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
                        clocks = <&cpg CPG_CORE R9A07G054_CLK_I>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                cpu1: cpu@100 {
                        next-level-cache = <&L3_CA55>;
                        enable-method = "psci";
                        clocks = <&cpg CPG_CORE R9A07G054_CLK_I>;
+                       operating-points-v2 = <&cluster0_opp>;
                };
 
                L3_CA55: cache-controller-0 {
                };
        };
 
+       gpu_opp_table: opp-table-1 {
+               compatible = "operating-points-v2";
+
+               opp-500000000 {
+                       opp-hz = /bits/ 64 <500000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-400000000 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-250000000 {
+                       opp-hz = /bits/ 64 <250000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-200000000 {
+                       opp-hz = /bits/ 64 <200000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-125000000 {
+                       opp-hz = /bits/ 64 <125000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-100000000 {
+                       opp-hz = /bits/ 64 <100000000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-62500000 {
+                       opp-hz = /bits/ 64 <62500000>;
+                       opp-microvolt = <1100000>;
+               };
+
+               opp-50000000 {
+                       opp-hz = /bits/ 64 <50000000>;
+                       opp-microvolt = <1100000>;
+               };
+       };
+
        psci {
                compatible = "arm,psci-1.0", "arm,psci-0.2";
                method = "smc";
                ranges;
 
                ssi0: ssi@10049c00 {
+                       compatible = "renesas,r9a07g054-ssi",
+                                    "renesas,rz-ssi";
                        reg = <0 0x10049c00 0 0x400>;
+                       interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 327 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 328 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 329 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G054_SSI0_PCLK2>,
+                                <&cpg CPG_MOD R9A07G054_SSI0_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G054_SSI0_RST_M2_REG>;
+                       dmas = <&dmac 0x2655>, <&dmac 0x2656>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&cpg>;
                        #sound-dai-cells = <0>;
-                       /* place holder */
+                       status = "disabled";
+               };
+
+               ssi1: ssi@1004a000 {
+                       compatible = "renesas,r9a07g054-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x1004a000 0 0x400>;
+                       interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 331 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 332 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 333 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G054_SSI1_PCLK2>,
+                                <&cpg CPG_MOD R9A07G054_SSI1_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G054_SSI1_RST_M2_REG>;
+                       dmas = <&dmac 0x2659>, <&dmac 0x265a>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               ssi2: ssi@1004a400 {
+                       compatible = "renesas,r9a07g054-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x1004a400 0 0x400>;
+                       interrupts = <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 335 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 336 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 337 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G054_SSI2_PCLK2>,
+                                <&cpg CPG_MOD R9A07G054_SSI2_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G054_SSI2_RST_M2_REG>;
+                       dmas = <&dmac 0x265f>;
+                       dma-names = "rt";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               ssi3: ssi@1004a800 {
+                       compatible = "renesas,r9a07g054-ssi",
+                                    "renesas,rz-ssi";
+                       reg = <0 0x1004a800 0 0x400>;
+                       interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 339 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 340 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 341 IRQ_TYPE_EDGE_RISING>;
+                       interrupt-names = "int_req", "dma_rx", "dma_tx", "dma_rt";
+                       clocks = <&cpg CPG_MOD R9A07G054_SSI3_PCLK2>,
+                                <&cpg CPG_MOD R9A07G054_SSI3_PCLK_SFR>,
+                                <&audio_clk1>, <&audio_clk2>;
+                       clock-names = "ssi", "ssi_sfr", "audio_clk1", "audio_clk2";
+                       resets = <&cpg R9A07G054_SSI3_RST_M2_REG>;
+                       dmas = <&dmac 0x2661>, <&dmac 0x2662>;
+                       dma-names = "tx", "rx";
+                       power-domains = <&cpg>;
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi0: spi@1004ac00 {
+                       compatible = "renesas,r9a07g054-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004ac00 0 0x400>;
+                       interrupts = <GIC_SPI 415 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 413 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 414 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G054_RSPI0_CLKB>;
+                       resets = <&cpg R9A07G054_RSPI0_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
                };
 
                spi1: spi@1004b000 {
+                       compatible = "renesas,r9a07g054-rspi", "renesas,rspi-rz";
                        reg = <0 0x1004b000 0 0x400>;
+                       interrupts = <GIC_SPI 418 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 416 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G054_RSPI1_CLKB>;
+                       resets = <&cpg R9A07G054_RSPI1_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               spi2: spi@1004b400 {
+                       compatible = "renesas,r9a07g054-rspi", "renesas,rspi-rz";
+                       reg = <0 0x1004b400 0 0x400>;
+                       interrupts = <GIC_SPI 421 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 419 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 420 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "error", "rx", "tx";
+                       clocks = <&cpg CPG_MOD R9A07G054_RSPI2_CLKB>;
+                       resets = <&cpg R9A07G054_RSPI2_RST>;
+                       power-domains = <&cpg>;
+                       num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       /* place holder */
+                       status = "disabled";
                };
 
                scif0: serial@1004b800 {
                };
 
                canfd: can@10050000 {
+                       compatible = "renesas,r9a07g054-canfd", "renesas,rzg2l-canfd";
                        reg = <0 0x10050000 0 0x8000>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 426 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 427 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 428 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 423 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 429 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "g_err", "g_recc",
+                                         "ch0_err", "ch0_rec", "ch0_trx",
+                                         "ch1_err", "ch1_rec", "ch1_trx";
+                       clocks = <&cpg CPG_MOD R9A07G054_CANFD_PCLK>,
+                                <&cpg CPG_CORE R9A07G054_CLK_P0_DIV2>,
+                                <&can_clk>;
+                       clock-names = "fck", "canfd", "can_clk";
+                       assigned-clocks = <&cpg CPG_CORE R9A07G054_CLK_P0_DIV2>;
+                       assigned-clock-rates = <50000000>;
+                       resets = <&cpg R9A07G054_CANFD_RSTP_N>,
+                                <&cpg R9A07G054_CANFD_RSTC_N>;
+                       reset-names = "rstp_n", "rstc_n";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       channel0 {
+                               status = "disabled";
+                       };
+                       channel1 {
+                               status = "disabled";
+                       };
                };
 
                i2c0: i2c@10058000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g054", "renesas,riic-rz";
                        reg = <0 0x10058000 0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 348 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 349 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G054_I2C0_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G054_I2C0_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                i2c1: i2c@10058400 {
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g054", "renesas,riic-rz";
                        reg = <0 0x10058400 0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 356 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 357 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G054_I2C1_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G054_I2C1_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@10058800 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g054", "renesas,riic-rz";
+                       reg = <0 0x10058800 0 0x400>;
+                       interrupts = <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 364 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 365 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G054_I2C2_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G054_I2C2_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                i2c3: i2c@10058c00 {
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       compatible = "renesas,riic-r9a07g054", "renesas,riic-rz";
                        reg = <0 0x10058c00 0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 372 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 373 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 376 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 377 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 378 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tei", "ri", "ti", "spi", "sti",
+                                         "naki", "ali", "tmoi";
+                       clocks = <&cpg CPG_MOD R9A07G054_I2C3_PCLK>;
+                       clock-frequency = <100000>;
+                       resets = <&cpg R9A07G054_I2C3_MRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                adc: adc@10059000 {
+                       compatible = "renesas,r9a07g054-adc", "renesas,rzg2l-adc";
                        reg = <0 0x10059000 0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 347 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G054_ADC_ADCLK>,
+                                <&cpg CPG_MOD R9A07G054_ADC_PCLK>;
+                       clock-names = "adclk", "pclk";
+                       resets = <&cpg R9A07G054_ADC_PRESETN>,
+                                <&cpg R9A07G054_ADC_ADRST_N>;
+                       reset-names = "presetn", "adrst-n";
+                       power-domains = <&cpg>;
+                       status = "disabled";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       channel@0 {
+                               reg = <0>;
+                       };
+                       channel@1 {
+                               reg = <1>;
+                       };
+                       channel@2 {
+                               reg = <2>;
+                       };
+                       channel@3 {
+                               reg = <3>;
+                       };
+                       channel@4 {
+                               reg = <4>;
+                       };
+                       channel@5 {
+                               reg = <5>;
+                       };
+                       channel@6 {
+                               reg = <6>;
+                       };
+                       channel@7 {
+                               reg = <7>;
+                       };
+               };
+
+               tsu: thermal@10059400 {
+                       compatible = "renesas,r9a07g054-tsu",
+                                    "renesas,rzg2l-tsu";
+                       reg = <0 0x10059400 0 0x400>;
+                       clocks = <&cpg CPG_MOD R9A07G054_TSU_PCLK>;
+                       resets = <&cpg R9A07G054_TSU_PRESETN>;
+                       power-domains = <&cpg>;
+                       #thermal-sensor-cells = <1>;
                };
 
                sbc: spi@10060000 {
+                       compatible = "renesas,r9a07g054-rpc-if",
+                                    "renesas,rzg2l-rpc-if";
                        reg = <0 0x10060000 0 0x10000>,
                              <0 0x20000000 0 0x10000000>,
                              <0 0x10070000 0 0x10000>;
+                       reg-names = "regs", "dirmap", "wbuf";
+                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_SPI_CLK2>,
+                                <&cpg CPG_MOD R9A07G054_SPI_CLK>;
+                       resets = <&cpg R9A07G054_SPI_RST>;
+                       power-domains = <&cpg>;
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       /* place holder */
+                       status = "disabled";
                };
 
                cpg: clock-controller@11010000 {
                };
 
                gpu: gpu@11840000 {
+                       compatible = "renesas,r9a07g054-mali",
+                                    "arm,mali-bifrost";
                        reg = <0x0 0x11840000 0x0 0x10000>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "job", "mmu", "gpu", "event";
+                       clocks = <&cpg CPG_MOD R9A07G054_GPU_CLK>,
+                                <&cpg CPG_MOD R9A07G054_GPU_AXI_CLK>,
+                                <&cpg CPG_MOD R9A07G054_GPU_ACE_CLK>;
+                       clock-names = "gpu", "bus", "bus_ace";
+                       power-domains = <&cpg>;
+                       resets = <&cpg R9A07G054_GPU_RESETN>,
+                                <&cpg R9A07G054_GPU_AXI_RESETN>,
+                                <&cpg R9A07G054_GPU_ACE_RESETN>;
+                       reset-names = "rst", "axi_rst", "ace_rst";
+                       operating-points-v2 = <&gpu_opp_table>;
                };
 
                gic: interrupt-controller@11900000 {
                };
 
                sdhi0: mmc@11c00000  {
+                       compatible = "renesas,sdhi-r9a07g054",
+                                    "renesas,rcar-gen3-sdhi";
                        reg = <0x0 0x11c00000 0 0x10000>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_SDHI0_IMCLK>,
+                                <&cpg CPG_MOD R9A07G054_SDHI0_CLK_HS>,
+                                <&cpg CPG_MOD R9A07G054_SDHI0_IMCLK2>,
+                                <&cpg CPG_MOD R9A07G054_SDHI0_ACLK>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg R9A07G054_SDHI0_IXRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                sdhi1: mmc@11c10000 {
+                       compatible = "renesas,sdhi-r9a07g054",
+                                    "renesas,rcar-gen3-sdhi";
                        reg = <0x0 0x11c10000 0 0x10000>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_SDHI1_IMCLK>,
+                                <&cpg CPG_MOD R9A07G054_SDHI1_CLK_HS>,
+                                <&cpg CPG_MOD R9A07G054_SDHI1_IMCLK2>,
+                                <&cpg CPG_MOD R9A07G054_SDHI1_ACLK>;
+                       clock-names = "core", "clkh", "cd", "aclk";
+                       resets = <&cpg R9A07G054_SDHI1_IXRST>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                eth0: ethernet@11c20000 {
                };
 
                phyrst: usbphy-ctrl@11c40000 {
+                       compatible = "renesas,r9a07g054-usbphy-ctrl",
+                                    "renesas,rzg2l-usbphy-ctrl";
                        reg = <0 0x11c40000 0 0x10000>;
-                       /* place holder */
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>;
+                       resets = <&cpg R9A07G054_USB_PRESETN>;
+                       power-domains = <&cpg>;
+                       #reset-cells = <1>;
+                       status = "disabled";
                };
 
                ohci0: usb@11c50000 {
+                       compatible = "generic-ohci";
                        reg = <0 0x11c50000 0 0x100>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2H0_HCLK>;
+                       resets = <&phyrst 0>,
+                                <&cpg R9A07G054_USB_U2H0_HRESETN>;
+                       phys = <&usb2_phy0 1>;
+                       phy-names = "usb";
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                ohci1: usb@11c70000 {
+                       compatible = "generic-ohci";
                        reg = <0 0x11c70000 0 0x100>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2H1_HCLK>;
+                       resets = <&phyrst 1>,
+                                <&cpg R9A07G054_USB_U2H1_HRESETN>;
+                       phys = <&usb2_phy1 1>;
+                       phy-names = "usb";
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                ehci0: usb@11c50100 {
+                       compatible = "generic-ehci";
                        reg = <0 0x11c50100 0 0x100>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2H0_HCLK>;
+                       resets = <&phyrst 0>,
+                                <&cpg R9A07G054_USB_U2H0_HRESETN>;
+                       phys = <&usb2_phy0 2>;
+                       phy-names = "usb";
+                       companion = <&ohci0>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                ehci1: usb@11c70100 {
+                       compatible = "generic-ehci";
                        reg = <0 0x11c70100 0 0x100>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2H1_HCLK>;
+                       resets = <&phyrst 1>,
+                                <&cpg R9A07G054_USB_U2H1_HRESETN>;
+                       phys = <&usb2_phy1 2>;
+                       phy-names = "usb";
+                       companion = <&ohci1>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                usb2_phy0: usb-phy@11c50200 {
+                       compatible = "renesas,usb2-phy-r9a07g054",
+                                    "renesas,rzg2l-usb2-phy";
                        reg = <0 0x11c50200 0 0x700>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2H0_HCLK>;
+                       resets = <&phyrst 0>;
+                       #phy-cells = <1>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                usb2_phy1: usb-phy@11c70200 {
+                       compatible = "renesas,usb2-phy-r9a07g054",
+                                    "renesas,rzg2l-usb2-phy";
                        reg = <0 0x11c70200 0 0x700>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2H1_HCLK>;
+                       resets = <&phyrst 1>;
+                       #phy-cells = <1>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                hsusb: usb@11c60000 {
+                       compatible = "renesas,usbhs-r9a07g054",
+                                    "renesas,rza2-usbhs";
                        reg = <0 0x11c60000 0 0x10000>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 100 IRQ_TYPE_EDGE_RISING>,
+                                    <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A07G054_USB_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_USB_U2P_EXR_CPUCLK>;
+                       resets = <&phyrst 0>,
+                                <&cpg R9A07G054_USB_U2P_EXL_SYSRST>;
+                       renesas,buswait = <7>;
+                       phys = <&usb2_phy0 3>;
+                       phy-names = "usb";
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                wdt0: watchdog@12800800 {
+                       compatible = "renesas,r9a07g054-wdt",
+                                    "renesas,rzg2l-wdt";
                        reg = <0 0x12800800 0 0x400>;
-                       /* place holder */
+                       clocks = <&cpg CPG_MOD R9A07G054_WDT0_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_WDT0_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G054_WDT0_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                wdt1: watchdog@12800c00 {
+                       compatible = "renesas,r9a07g054-wdt",
+                                    "renesas,rzg2l-wdt";
                        reg = <0 0x12800C00 0 0x400>;
-                       /* place holder */
+                       clocks = <&cpg CPG_MOD R9A07G054_WDT1_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_WDT1_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G054_WDT1_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                wdt2: watchdog@12800400 {
+                       compatible = "renesas,r9a07g054-wdt",
+                                    "renesas,rzg2l-wdt";
                        reg = <0 0x12800400 0 0x400>;
-                       /* place holder */
+                       clocks = <&cpg CPG_MOD R9A07G054_WDT2_PCLK>,
+                                <&cpg CPG_MOD R9A07G054_WDT2_CLK>;
+                       clock-names = "pclk", "oscclk";
+                       interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "wdt", "perrout";
+                       resets = <&cpg R9A07G054_WDT2_PRESETN>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                ostm0: timer@12801000 {
+                       compatible = "renesas,r9a07g054-ostm",
+                                    "renesas,ostm";
                        reg = <0x0 0x12801000 0x0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 46 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G054_OSTM0_PCLK>;
+                       resets = <&cpg R9A07G054_OSTM0_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                ostm1: timer@12801400 {
+                       compatible = "renesas,r9a07g054-ostm",
+                                    "renesas,ostm";
                        reg = <0x0 0x12801400 0x0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 47 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G054_OSTM1_PCLK>;
+                       resets = <&cpg R9A07G054_OSTM1_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
                };
 
                ostm2: timer@12801800 {
+                       compatible = "renesas,r9a07g054-ostm",
+                                    "renesas,ostm";
                        reg = <0x0 0x12801800 0x0 0x400>;
-                       /* place holder */
+                       interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>;
+                       clocks = <&cpg CPG_MOD R9A07G054_OSTM2_PCLK>;
+                       resets = <&cpg R9A07G054_OSTM2_PRESETZ>;
+                       power-domains = <&cpg>;
+                       status = "disabled";
+               };
+       };
+
+       thermal-zones {
+               cpu-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsu 0>;
+                       sustainable-power = <717>;
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&target>;
+                                       cooling-device = <&cpu0 0 2>;
+                                       contribution = <1024>;
+                               };
+                       };
+
+                       trips {
+                               sensor_crit: sensor-crit {
+                                       temperature = <125000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+
+                               target: trip-point {
+                                       temperature = <100000>;
+                                       hysteresis = <1000>;
+                                       type = "passive";
+                               };
+                       };
                };
        };
 
index fc334b4..4e07e1a 100644 (file)
        model = "Renesas SMARC EVK based on r9a07g054l2";
        compatible = "renesas,smarc-evk", "renesas,r9a07g054l2", "renesas,r9a07g054";
 };
-
-&pinctrl {
-       /delete-node/ can0-stb-hog;
-       /delete-node/ can1-stb-hog;
-       /delete-node/ gpio-sd0-pwr-en-hog;
-       /delete-node/ sd0-dev-sel-hog;
-       /delete-node/ sd1-pwr-en-hog;
-};
diff --git a/arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts b/arch/arm64/boot/dts/renesas/r9a09g011-v2mevk2.dts
new file mode 100644 (file)
index 0000000..c207d8c
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/V2M (r9a09g011) Evaluation Kit Board
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+/dts-v1/;
+#include "r9a09g011.dtsi"
+
+/ {
+       model = "RZ/V2M Evaluation Kit 2.0";
+       compatible = "renesas,rzv2mevk2", "renesas,r9a09g011";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@58000000 {
+               device_type = "memory";
+               /*
+                * first 1.25GiB is reserved for ISP Firmware,
+                * next 128MiB is reserved for secure area.
+                */
+               reg = <0x0 0x58000000 0x0 0x28000000>;
+       };
+
+       memory@180000000 {
+               device_type = "memory";
+               reg = <0x1 0x80000000 0x0 0x80000000>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <48000000>;
+};
+
+&uart0 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/renesas/r9a09g011.dtsi b/arch/arm64/boot/dts/renesas/r9a09g011.dtsi
new file mode 100644 (file)
index 0000000..27810f4
--- /dev/null
@@ -0,0 +1,93 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/V2M SoC
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/clock/r9a09g011-cpg.h>
+
+/ {
+       compatible = "renesas,r9a09g011";
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       /* clock can be either from exclk or crystal oscillator (XIN/XOUT) */
+       extal_clk: extal {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               /* This value must be overridden by the board */
+               clock-frequency = <0>;
+       };
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               cpu-map {
+                       cluster0 {
+                               core0 {
+                                       cpu = <&cpu0>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       compatible = "arm,cortex-a53";
+                       reg = <0>;
+                       device_type = "cpu";
+                       clocks = <&cpg CPG_MOD R9A09G011_CA53_CLK>;
+               };
+       };
+
+       soc: soc {
+               compatible = "simple-bus";
+               interrupt-parent = <&gic>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               gic: interrupt-controller@82000000 {
+                       compatible = "arm,gic-400";
+                       #interrupt-cells = <3>;
+                       #address-cells = <0>;
+                       interrupt-controller;
+                       reg = <0x0 0x82010000 0 0x1000>,
+                             <0x0 0x82020000 0 0x20000>,
+                             <0x0 0x82040000 0 0x20000>,
+                             <0x0 0x82060000 0 0x20000>;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
+                       clocks = <&cpg CPG_MOD R9A09G011_GIC_CLK>;
+                       clock-names = "clk";
+               };
+
+               cpg: clock-controller@a3500000 {
+                       compatible = "renesas,r9a09g011-cpg";
+                       reg = <0 0xa3500000 0 0x1000>;
+                       clocks = <&extal_clk>;
+                       clock-names = "extal";
+                       #clock-cells = <2>;
+                       #reset-cells = <1>;
+                       #power-domain-cells = <0>;
+               };
+
+               uart0: serial@a4040000 {
+                       compatible = "renesas,r9a09g011-uart", "renesas,em-uart";
+                       reg = <0 0xa4040000 0 0x80>;
+                       interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD R9A09G011_URT0_CLK>,
+                                <&cpg CPG_MOD R9A09G011_URT_PCLK>;
+                       clock-names = "sclk", "pclk";
+                       status = "disabled";
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
+                                     <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
+       };
+};
index 588117a..3962d47 100644 (file)
@@ -26,7 +26,6 @@
                serial0 = &scif0;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
-               i2c3 = &i2c3;
        };
 
        chosen {
@@ -53,7 +52,6 @@
                            "Mic Bias", "Microphone Jack";
 
                cpu_dai: simple-audio-card,cpu {
-                       sound-dai = <&ssi0>;
                };
 
                codec_dai: simple-audio-card,codec {
@@ -75,7 +73,6 @@
                regulator-name = "SDHI1 VccQ";
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <3300000>;
-               gpios = <&pinctrl RZG2L_GPIO(39, 1) GPIO_ACTIVE_HIGH>;
                gpios-states = <1>;
                states = <3300000 1>, <1800000 0>;
        };
        status = "okay";
 };
 
-&i2c3 {
-       pinctrl-0 = <&i2c3_pins>;
-       pinctrl-names = "default";
-       clock-frequency = <400000>;
-
-       status = "okay";
-
-       wm8978: codec@1a {
-               compatible = "wlf,wm8978";
-               #sound-dai-cells = <0>;
-               reg = <0x1a>;
-       };
-};
-
 &ohci0 {
        dr_mode = "otg";
        status = "okay";
        status = "okay";
 };
 
-&ssi0 {
-       pinctrl-0 = <&ssi0_pins>;
-       pinctrl-names = "default";
-
-       status = "okay";
-};
-
 &usb2_phy0 {
        pinctrl-0 = <&usb0_pins>;
        pinctrl-names = "default";
index 33ddfd1..e180a95 100644 (file)
 / {
        aliases {
                serial1 = &scif2;
+               i2c3 = &i2c3;
+       };
+};
+
+&cpu_dai {
+       sound-dai = <&ssi0>;
+};
+
+&i2c3 {
+       pinctrl-0 = <&i2c3_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       wm8978: codec@1a {
+               compatible = "wlf,wm8978";
+               #sound-dai-cells = <0>;
+               reg = <0x1a>;
        };
 };
 
        status = "okay";
 };
 #endif
+
+&ssi0 {
+       pinctrl-0 = <&ssi0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&vccq_sdhi1 {
+       gpios = <&pinctrl RZG2L_GPIO(39, 1) GPIO_ACTIVE_HIGH>;
+};
index 37ff209..a78a8de 100644 (file)
        pinctrl-0 = <&sound_clk_pins>;
        pinctrl-names = "default";
 
-       scif0_pins: scif0 {
-               pinmux = <RZG2L_PORT_PINMUX(38, 0, 1)>, /* TxD */
-                        <RZG2L_PORT_PINMUX(38, 1, 1)>; /* RxD */
-       };
-
 #if SW_SCIF_CAN
        /* SW8 should be at position 2->1 */
        can1_pins: can1 {
        };
 #endif
 
-       scif1_pins: scif1 {
-               pinmux = <RZG2L_PORT_PINMUX(40, 0, 1)>, /* TxD */
-                        <RZG2L_PORT_PINMUX(40, 1, 1)>, /* RxD */
-                        <RZG2L_PORT_PINMUX(41, 0, 1)>, /* CTS# */
-                        <RZG2L_PORT_PINMUX(41, 1, 1)>; /* RTS# */
-       };
-
 #if SW_RSPI_CAN
        /* SW8 should be at position 2->3 so that GPIO9_CAN1_STB line is activated */
        can1-stb-hog {
        };
 #endif
 
+       i2c0_pins: i2c0 {
+               pins = "RIIC0_SDA", "RIIC0_SCL";
+               input-enable;
+       };
+
+       i2c1_pins: i2c1 {
+               pins = "RIIC1_SDA", "RIIC1_SCL";
+               input-enable;
+       };
+
+       i2c2_pins: i2c2 {
+               pinmux = <RZG2L_PORT_PINMUX(42, 3, 1)>, /* SDA */
+                        <RZG2L_PORT_PINMUX(42, 4, 1)>; /* SCL */
+       };
+
+       scif0_pins: scif0 {
+               pinmux = <RZG2L_PORT_PINMUX(38, 0, 1)>, /* TxD */
+                        <RZG2L_PORT_PINMUX(38, 1, 1)>; /* RxD */
+       };
+
+       scif1_pins: scif1 {
+               pinmux = <RZG2L_PORT_PINMUX(40, 0, 1)>, /* TxD */
+                        <RZG2L_PORT_PINMUX(40, 1, 1)>, /* RxD */
+                        <RZG2L_PORT_PINMUX(41, 0, 1)>, /* CTS# */
+                        <RZG2L_PORT_PINMUX(41, 1, 1)>; /* RTS# */
+       };
+
        sd1-pwr-en-hog {
                gpio-hog;
                gpios = <RZG2L_GPIO(39, 2) GPIO_ACTIVE_HIGH>;
                pins = "AUDIO_CLK1", "AUDIO_CLK2";
                input-enable;
        };
+
+       spi1_pins: spi1 {
+               pinmux = <RZG2L_PORT_PINMUX(44, 0, 1)>, /* CK */
+                        <RZG2L_PORT_PINMUX(44, 1, 1)>, /* MOSI */
+                        <RZG2L_PORT_PINMUX(44, 2, 1)>, /* MISO */
+                        <RZG2L_PORT_PINMUX(44, 3, 1)>; /* SSL */
+       };
+
+       ssi0_pins: ssi0 {
+               pinmux = <RZG2L_PORT_PINMUX(45, 0, 1)>, /* BCK */
+                        <RZG2L_PORT_PINMUX(45, 1, 1)>, /* RCK */
+                        <RZG2L_PORT_PINMUX(45, 2, 1)>, /* TXD */
+                        <RZG2L_PORT_PINMUX(45, 3, 1)>; /* RXD */
+       };
+
+       usb0_pins: usb0 {
+               pinmux = <RZG2L_PORT_PINMUX(4, 0, 1)>, /* VBUS */
+                        <RZG2L_PORT_PINMUX(5, 0, 1)>, /* OVC */
+                        <RZG2L_PORT_PINMUX(5, 1, 1)>; /* OTG_ID */
+       };
+
+       usb1_pins: usb1 {
+               pinmux = <RZG2L_PORT_PINMUX(42, 0, 1)>, /* VBUS */
+                        <RZG2L_PORT_PINMUX(42, 1, 1)>; /* OVC */
+       };
 };
 
index 88a7938..959a0ad 100644 (file)
                regulator-always-on;
        };
 
+       reg_1p1v: regulator-vdd-core {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.1V";
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
        vccq_sdhi0: regulator-vccq-sdhi0 {
                compatible = "regulator-gpio";
 
        clock-frequency = <24000000>;
 };
 
+&gpu {
+       mali-supply = <&reg_1p1v>;
+};
+
+&ostm1 {
+       status = "okay";
+};
+
+&ostm2 {
+       status = "okay";
+};
+
 &pinctrl {
        eth0_pins: eth0 {
                pinmux = <RZG2L_PORT_PINMUX(28, 1, 1)>, /* ET0_LINKSTA */
                line-name = "gpio_sd0_pwr_en";
        };
 
+       qspi0_pins: qspi0 {
+               qspi0-data {
+                       pins = "QSPI0_IO0", "QSPI0_IO1", "QSPI0_IO2", "QSPI0_IO3";
+                       power-source = <1800>;
+               };
+
+               qspi0-ctrl {
+                       pins = "QSPI0_SPCLK", "QSPI0_SSL", "QSPI_RESET#";
+                       power-source = <1800>;
+               };
+       };
+
        /*
         * SD0 device selection is XOR between GPIO_SD0_DEV_SEL and SW1[2]
         * The below switch logic can be used to select the device between
        };
 };
 
+&sbc {
+       pinctrl-0 = <&qspi0_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       flash@0 {
+               compatible = "micron,mt25qu512a", "jedec,spi-nor";
+               reg = <0>;
+               m25p,fast-read;
+               spi-max-frequency = <50000000>;
+               spi-rx-bus-width = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       boot@0 {
+                               reg = <0x00000000 0x2000000>;
+                               read-only;
+                       };
+                       user@2000000 {
+                               reg = <0x2000000 0x2000000>;
+                       };
+               };
+       };
+};
+
 #if (!SW_SD0_DEV_SEL)
 &sdhi0 {
        pinctrl-0 = <&sdhi0_pins>;
index df7631f..aa17049 100644 (file)
@@ -43,6 +43,7 @@
 / {
        aliases {
                serial1 = &scif1;
+               i2c2 = &i2c2;
        };
 };
 
 };
 #endif
 
+&cpu_dai {
+       sound-dai = <&ssi0>;
+};
+
+&i2c2 {
+       pinctrl-0 = <&i2c2_pins>;
+       pinctrl-names = "default";
+       clock-frequency = <400000>;
+
+       status = "okay";
+
+       wm8978: codec@1a {
+               compatible = "wlf,wm8978";
+               #sound-dai-cells = <0>;
+               reg = <0x1a>;
+       };
+};
+
 /*
  * To enable SCIF1 (SER0) on PMOD1 (CN7), On connector board
  * SW1 should be at position 2->3 so that SER0_CTS# line is activated
        status = "okay";
 };
 #endif
+
+&ssi0 {
+       pinctrl-0 = <&ssi0_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+#if (SW_RSPI_CAN)
+&spi1 {
+       /delete-property/ pinctrl-0;
+       /delete-property/ pinctrl-names;
+       status = "disabled";
+};
+#endif
+
+&vccq_sdhi1 {
+       gpios = <&pinctrl RZG2L_GPIO(39, 1) GPIO_ACTIVE_HIGH>;
+};
diff --git a/arch/arm64/boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi b/arch/arm64/boot/dts/renesas/rzg2ul-smarc-pinfunction.dtsi
new file mode 100644 (file)
index 0000000..bd8bc85
--- /dev/null
@@ -0,0 +1,119 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/G2UL SMARC pincontrol parts
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
+
+&pinctrl {
+       pinctrl-0 = <&sound_clk_pins>;
+       pinctrl-names = "default";
+
+       can0_pins: can0 {
+               pinmux = <RZG2L_PORT_PINMUX(1, 1, 3)>, /* TX */
+                        <RZG2L_PORT_PINMUX(1, 2, 3)>; /* RX */
+       };
+
+#if (SW_ET0_EN_N)
+       can0-stb-hog {
+               gpio-hog;
+               gpios = <RZG2L_GPIO(2, 2) GPIO_ACTIVE_HIGH>;
+               output-low;
+               line-name = "can0_stb";
+       };
+#endif
+
+       can1_pins: can1 {
+               pinmux = <RZG2L_PORT_PINMUX(2, 0, 3)>, /* TX */
+                        <RZG2L_PORT_PINMUX(2, 1, 3)>; /* RX */
+       };
+
+#if (SW_ET0_EN_N)
+       can1-stb-hog {
+               gpio-hog;
+               gpios = <RZG2L_GPIO(2, 3) GPIO_ACTIVE_HIGH>;
+               output-low;
+               line-name = "can1_stb";
+       };
+#endif
+
+       i2c0_pins: i2c0 {
+               pins = "RIIC0_SDA", "RIIC0_SCL";
+               input-enable;
+       };
+
+       i2c1_pins: i2c1 {
+               pins = "RIIC1_SDA", "RIIC1_SCL";
+               input-enable;
+       };
+
+       scif0_pins: scif0 {
+               pinmux = <RZG2L_PORT_PINMUX(6, 4, 6)>, /* TxD */
+                        <RZG2L_PORT_PINMUX(6, 3, 6)>; /* RxD */
+       };
+
+       sd1-pwr-en-hog {
+               gpio-hog;
+               gpios = <RZG2L_GPIO(0, 3) GPIO_ACTIVE_HIGH>;
+               output-high;
+               line-name = "sd1_pwr_en";
+       };
+
+       sdhi1_pins: sd1 {
+               sd1_data {
+                       pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
+                       power-source = <3300>;
+               };
+
+               sd1_ctrl {
+                       pins = "SD1_CLK", "SD1_CMD";
+                       power-source = <3300>;
+               };
+
+               sd1_mux {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
+               };
+       };
+
+       sdhi1_pins_uhs: sd1_uhs {
+               sd1_data_uhs {
+                       pins = "SD1_DATA0", "SD1_DATA1", "SD1_DATA2", "SD1_DATA3";
+                       power-source = <1800>;
+               };
+
+               sd1_ctrl_uhs {
+                       pins = "SD1_CLK", "SD1_CMD";
+                       power-source = <1800>;
+               };
+
+               sd1_mux_uhs {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 2, 1)>; /* SD1_CD */
+               };
+       };
+
+       sound_clk_pins: sound_clk {
+               pins = "AUDIO_CLK1", "AUDIO_CLK2";
+               input-enable;
+       };
+
+       ssi1_pins: ssi1 {
+               pinmux = <RZG2L_PORT_PINMUX(3, 0, 2)>, /* BCK */
+                        <RZG2L_PORT_PINMUX(3, 1, 2)>, /* RCK */
+                        <RZG2L_PORT_PINMUX(3, 2, 2)>, /* TXD */
+                        <RZG2L_PORT_PINMUX(3, 3, 2)>; /* RXD */
+       };
+
+       usb0_pins: usb0 {
+               pinmux = <RZG2L_PORT_PINMUX(5, 0, 1)>, /* VBUS */
+                        <RZG2L_PORT_PINMUX(5, 2, 1)>, /* OVC */
+                        <RZG2L_PORT_PINMUX(5, 3, 1)>; /* OTG_ID */
+       };
+
+       usb1_pins: usb1 {
+               pinmux = <RZG2L_PORT_PINMUX(5, 4, 5)>, /* OVC */
+                        <RZG2L_PORT_PINMUX(6, 0, 1)>; /* VBUS */
+       };
+};
diff --git a/arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi b/arch/arm64/boot/dts/renesas/rzg2ul-smarc-som.dtsi
new file mode 100644 (file)
index 0000000..a663115
--- /dev/null
@@ -0,0 +1,251 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/G2UL SMARC SOM common parts
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rzg2l-pinctrl.h>
+
+/ {
+       aliases {
+               ethernet0 = &eth0;
+               ethernet1 = &eth1;
+       };
+
+       chosen {
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
+       };
+
+       memory@48000000 {
+               device_type = "memory";
+               /* first 128MB is reserved for secure area. */
+               reg = <0x0 0x48000000 0x0 0x38000000>;
+       };
+
+       reg_1p8v: regulator0 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-1.8V";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+       reg_3p3v: regulator1 {
+               compatible = "regulator-fixed";
+               regulator-name = "fixed-3.3V";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               regulator-always-on;
+       };
+
+#if !(SW_SW0_DEV_SEL)
+       vccq_sdhi0: regulator-vccq-sdhi0 {
+               compatible = "regulator-gpio";
+
+               regulator-name = "SDHI0 VccQ";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               states = <3300000 1>, <1800000 0>;
+               regulator-boot-on;
+               gpios = <&pinctrl RZG2L_GPIO(6, 2) GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+       };
+#endif
+};
+
+#if (!SW_ET0_EN_N)
+&eth0 {
+       pinctrl-0 = <&eth0_pins>;
+       pinctrl-names = "default";
+       phy-handle = <&phy0>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       phy0: ethernet-phy@7 {
+               compatible = "ethernet-phy-id0022.1640",
+                            "ethernet-phy-ieee802.3-c22";
+               reg = <7>;
+               rxc-skew-psec = <2400>;
+               txc-skew-psec = <2400>;
+               rxdv-skew-psec = <0>;
+               txdv-skew-psec = <0>;
+               rxd0-skew-psec = <0>;
+               rxd1-skew-psec = <0>;
+               rxd2-skew-psec = <0>;
+               rxd3-skew-psec = <0>;
+               txd0-skew-psec = <0>;
+               txd1-skew-psec = <0>;
+               txd2-skew-psec = <0>;
+               txd3-skew-psec = <0>;
+       };
+};
+#endif
+
+&eth1 {
+       pinctrl-0 = <&eth1_pins>;
+       pinctrl-names = "default";
+       phy-handle = <&phy1>;
+       phy-mode = "rgmii-id";
+       status = "okay";
+
+       phy1: ethernet-phy@7 {
+               compatible = "ethernet-phy-id0022.1640",
+                            "ethernet-phy-ieee802.3-c22";
+               reg = <7>;
+               rxc-skew-psec = <2400>;
+               txc-skew-psec = <2400>;
+               rxdv-skew-psec = <0>;
+               txdv-skew-psec = <0>;
+               rxd0-skew-psec = <0>;
+               rxd1-skew-psec = <0>;
+               rxd2-skew-psec = <0>;
+               rxd3-skew-psec = <0>;
+               txd0-skew-psec = <0>;
+               txd1-skew-psec = <0>;
+               txd2-skew-psec = <0>;
+               txd3-skew-psec = <0>;
+       };
+};
+
+&extal_clk {
+       clock-frequency = <24000000>;
+};
+
+&ostm1 {
+       status = "okay";
+};
+
+&ostm2 {
+       status = "okay";
+};
+
+&pinctrl {
+       eth0_pins: eth0 {
+               pinmux = <RZG2L_PORT_PINMUX(4, 5, 1)>, /* ET0_LINKSTA */
+                        <RZG2L_PORT_PINMUX(4, 3, 1)>, /* ET0_MDC */
+                        <RZG2L_PORT_PINMUX(4, 4, 1)>, /* ET0_MDIO */
+                        <RZG2L_PORT_PINMUX(1, 0, 1)>, /* ET0_TXC */
+                        <RZG2L_PORT_PINMUX(1, 1, 1)>, /* ET0_TX_CTL */
+                        <RZG2L_PORT_PINMUX(1, 2, 1)>, /* ET0_TXD0 */
+                        <RZG2L_PORT_PINMUX(1, 3, 1)>, /* ET0_TXD1 */
+                        <RZG2L_PORT_PINMUX(1, 4, 1)>, /* ET0_TXD2 */
+                        <RZG2L_PORT_PINMUX(2, 0, 1)>, /* ET0_TXD3 */
+                        <RZG2L_PORT_PINMUX(3, 0, 1)>, /* ET0_RXC */
+                        <RZG2L_PORT_PINMUX(3, 1, 1)>, /* ET0_RX_CTL */
+                        <RZG2L_PORT_PINMUX(3, 2, 1)>, /* ET0_RXD0 */
+                        <RZG2L_PORT_PINMUX(3, 3, 1)>, /* ET0_RXD1 */
+                        <RZG2L_PORT_PINMUX(4, 0, 1)>, /* ET0_RXD2 */
+                        <RZG2L_PORT_PINMUX(4, 1, 1)>; /* ET0_RXD3 */
+       };
+
+       eth1_pins: eth1 {
+               pinmux = <RZG2L_PORT_PINMUX(10, 4, 1)>, /* ET1_LINKSTA */
+                        <RZG2L_PORT_PINMUX(10, 2, 1)>, /* ET1_MDC */
+                        <RZG2L_PORT_PINMUX(10, 3, 1)>, /* ET1_MDIO */
+                        <RZG2L_PORT_PINMUX(7, 0, 1)>, /* ET1_TXC */
+                        <RZG2L_PORT_PINMUX(7, 1, 1)>, /* ET1_TX_CTL */
+                        <RZG2L_PORT_PINMUX(7, 2, 1)>, /* ET1_TXD0 */
+                        <RZG2L_PORT_PINMUX(7, 3, 1)>, /* ET1_TXD1 */
+                        <RZG2L_PORT_PINMUX(7, 4, 1)>, /* ET1_TXD2 */
+                        <RZG2L_PORT_PINMUX(8, 0, 1)>, /* ET1_TXD3 */
+                        <RZG2L_PORT_PINMUX(8, 4, 1)>, /* ET1_RXC */
+                        <RZG2L_PORT_PINMUX(9, 0, 1)>, /* ET1_RX_CTL */
+                        <RZG2L_PORT_PINMUX(9, 1, 1)>, /* ET1_RXD0 */
+                        <RZG2L_PORT_PINMUX(9, 2, 1)>, /* ET1_RXD1 */
+                        <RZG2L_PORT_PINMUX(9, 3, 1)>, /* ET1_RXD2 */
+                        <RZG2L_PORT_PINMUX(10, 0, 1)>; /* ET1_RXD3 */
+       };
+
+       sdhi0_emmc_pins: sd0emmc {
+               sd0_emmc_data {
+                       pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3",
+                              "SD0_DATA4", "SD0_DATA5", "SD0_DATA6", "SD0_DATA7";
+                       power-source = <1800>;
+               };
+
+               sd0_emmc_ctrl {
+                       pins = "SD0_CLK", "SD0_CMD";
+                       power-source = <1800>;
+               };
+
+               sd0_emmc_rst {
+                       pins = "SD0_RST#";
+                       power-source = <1800>;
+               };
+       };
+
+       sdhi0_pins: sd0 {
+               sd0_data {
+                       pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
+                       power-source = <3300>;
+               };
+
+               sd0_ctrl {
+                       pins = "SD0_CLK", "SD0_CMD";
+                       power-source = <3300>;
+               };
+
+               sd0_mux {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */
+               };
+       };
+
+       sdhi0_pins_uhs: sd0_uhs {
+               sd0_data_uhs {
+                       pins = "SD0_DATA0", "SD0_DATA1", "SD0_DATA2", "SD0_DATA3";
+                       power-source = <1800>;
+               };
+
+               sd0_ctrl_uhs {
+                       pins = "SD0_CLK", "SD0_CMD";
+                       power-source = <1800>;
+               };
+
+               sd0_mux_uhs {
+                       pinmux = <RZG2L_PORT_PINMUX(0, 0, 1)>; /* SD0_CD */
+               };
+       };
+};
+
+#if (SW_SW0_DEV_SEL)
+&sdhi0 {
+       pinctrl-0 = <&sdhi0_emmc_pins>;
+       pinctrl-1 = <&sdhi0_emmc_pins>;
+       pinctrl-names = "default", "state_uhs";
+
+       vmmc-supply = <&reg_3p3v>;
+       vqmmc-supply = <&reg_1p8v>;
+       bus-width = <8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       fixed-emmc-driver-type = <1>;
+       status = "okay";
+};
+#else
+&sdhi0 {
+       pinctrl-0 = <&sdhi0_pins>;
+       pinctrl-1 = <&sdhi0_pins_uhs>;
+       pinctrl-names = "default", "state_uhs";
+
+       vmmc-supply = <&reg_3p3v>;
+       vqmmc-supply = <&vccq_sdhi0>;
+       bus-width = <4>;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+#endif
+
+&wdt0 {
+       status = "okay";
+       timeout-sec = <60>;
+};
+
+&wdt2 {
+       status = "okay";
+       timeout-sec = <60>;
+};
diff --git a/arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi b/arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi
new file mode 100644 (file)
index 0000000..0051634
--- /dev/null
@@ -0,0 +1,63 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Device Tree Source for the RZ/G2UL Type-1 SMARC EVK parts
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+
+/*
+ * DIP-Switch SW1 setting
+ * 1 : High; 0: Low
+ * SW1-2 : SW_SD0_DEV_SEL      (0: uSD; 1: eMMC)
+ * SW1-3 : SW_ET0_EN_N         (0: ETHER0; 1: CAN0, CAN1, SSI1, RSPI1)
+ * Please change below macros according to SW1 setting
+ */
+#define SW_SW0_DEV_SEL 1
+#define SW_ET0_EN_N    1
+
+#include "rzg2ul-smarc-som.dtsi"
+#include "rzg2ul-smarc-pinfunction.dtsi"
+#include "rz-smarc-common.dtsi"
+
+#if (!SW_ET0_EN_N)
+&canfd {
+       /delete-property/ pinctrl-0;
+       /delete-property/ pinctrl-names;
+       status = "disabled";
+};
+#endif
+
+&cpu_dai {
+       sound-dai = <&ssi1>;
+};
+
+&i2c1 {
+       wm8978: codec@1a {
+               compatible = "wlf,wm8978";
+               #sound-dai-cells = <0>;
+               reg = <0x1a>;
+       };
+};
+
+#if (SW_ET0_EN_N)
+&ssi1 {
+       pinctrl-0 = <&ssi1_pins>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+#else
+&snd_rzg2l {
+       status = "disabled";
+};
+
+&ssi1 {
+       /delete-property/ pinctrl-0;
+       /delete-property/ pinctrl-names;
+       status = "disabled";
+};
+#endif
+
+&vccq_sdhi1 {
+       gpios = <&pinctrl RZG2L_GPIO(6, 1) GPIO_ACTIVE_HIGH>;
+};
index 6092dc4..31837fc 100644 (file)
 
        ports {
                port@0 {
-                       endpoint {
+                       du_out_rgb: endpoint {
                                remote-endpoint = <&adv7123_in>;
                        };
                };
        };
 };
 
+&rpc {
+       /* Left disabled.  To be enabled by firmware when unlocked. */
+
+       flash@0 {
+               compatible = "cypress,hyperflash", "cfi-flash";
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       bootparam@0 {
+                               reg = <0x00000000 0x040000>;
+                               read-only;
+                       };
+                       bl2@40000 {
+                               reg = <0x00040000 0x140000>;
+                               read-only;
+                       };
+                       cert_header_sa6@180000 {
+                               reg = <0x00180000 0x040000>;
+                               read-only;
+                       };
+                       bl31@1c0000 {
+                               reg = <0x001c0000 0x040000>;
+                               read-only;
+                       };
+                       tee@200000 {
+                               reg = <0x00200000 0x440000>;
+                               read-only;
+                       };
+                       uboot@640000 {
+                               reg = <0x00640000 0x100000>;
+                               read-only;
+                       };
+                       dtb@740000 {
+                               reg = <0x00740000 0x080000>;
+                       };
+                       kernel@7c0000 {
+                               reg = <0x007c0000 0x1400000>;
+                       };
+                       user@1bc0000 {
+                               reg = <0x01bc0000 0x2440000>;
+                       };
+               };
+       };
+};
+
 &rwdt {
        timeout-sec = <60>;
        status = "okay";
index ae532cd..5bcb844 100644 (file)
        status = "okay";
 };
 
-&du_out_rgb {
-       remote-endpoint = <&adv7513_in>;
+&du {
+       ports {
+               port@0 {
+                       du_out_rgb: endpoint {
+                               remote-endpoint = <&adv7513_in>;
+                       };
+               };
+       };
 };
 
 &ehci0 {
index b4bdb2d..90a4c06 100644 (file)
        };
 };
 
+&rpc {
+       /* Left disabled.  To be enabled by firmware when unlocked. */
+
+       flash@0 {
+               compatible = "cypress,hyperflash", "cfi-flash";
+               reg = <0>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       bootparam@0 {
+                               reg = <0x00000000 0x040000>;
+                               read-only;
+                       };
+                       bl2@40000 {
+                               reg = <0x00040000 0x140000>;
+                               read-only;
+                       };
+                       cert_header_sa6@180000 {
+                               reg = <0x00180000 0x040000>;
+                               read-only;
+                       };
+                       bl31@1c0000 {
+                               reg = <0x001c0000 0x040000>;
+                               read-only;
+                       };
+                       tee@200000 {
+                               reg = <0x00200000 0x440000>;
+                               read-only;
+                       };
+                       uboot@640000 {
+                               reg = <0x00640000 0x100000>;
+                               read-only;
+                       };
+                       dtb@740000 {
+                               reg = <0x00740000 0x080000>;
+                       };
+                       kernel@7c0000 {
+                               reg = <0x007c0000 0x1400000>;
+                       };
+                       user@1bc0000 {
+                               reg = <0x01bc0000 0x2440000>;
+                       };
+               };
+       };
+};
+
 &rwdt {
        timeout-sec = <60>;
        status = "okay";
index 4ae9f35..18d00ea 100644 (file)
@@ -59,5 +59,9 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.1.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-pinenote-v1.2.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
-dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
index b822533..49ae157 100644 (file)
                        };
                        power-domain@RK3328_PD_VIDEO {
                                reg = <RK3328_PD_VIDEO>;
+                               clocks = <&cru ACLK_RKVDEC>,
+                                        <&cru HCLK_RKVDEC>,
+                                        <&cru SCLK_VDEC_CABAC>,
+                                        <&cru SCLK_VDEC_CORE>;
                                #power-domain-cells = <0>;
                        };
                        power-domain@RK3328_PD_VPU {
                power-domains = <&power RK3328_PD_VPU>;
        };
 
-       rkvdec_mmu: iommu@ff360480 {
+       vdec: video-codec@ff360000 {
+               compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec";
+               reg = <0x0 0xff360000 0x0 0x400>;
+               interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>,
+                        <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
+               clock-names = "axi", "ahb", "cabac", "core";
+               assigned-clocks = <&cru ACLK_RKVDEC>, <&cru SCLK_VDEC_CABAC>,
+                                 <&cru SCLK_VDEC_CORE>;
+               assigned-clock-rates = <400000000>, <400000000>, <300000000>;
+               iommus = <&vdec_mmu>;
+               power-domains = <&power RK3328_PD_VIDEO>;
+       };
+
+       vdec_mmu: iommu@ff360480 {
                compatible = "rockchip,iommu";
                reg = <0x0 0xff360480 0x0 0x40>, <0x0 0xff3604c0 0x0 0x40>;
                interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>;
                clock-names = "aclk", "iface";
                #iommu-cells = <0>;
-               status = "disabled";
+               power-domains = <&power RK3328_PD_VIDEO>;
        };
 
        vop: vop@ff370000 {
index c654b6b..b340c9e 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include <dt-bindings/usb/pd.h>
 #include "rk3399.dtsi"
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                brcm,drive-strength = <5>;
                pinctrl-names = "default";
index 3355fb9..50d459e 100644 (file)
        extcon = <&usbc_extcon0>, <&usbc_extcon1>;
 };
 
+&dmc {
+       center-supply = <&ppvar_centerlogic>;
+       rockchip,pd-idle-dis-freq-hz = <800000000>;
+       rockchip,sr-idle-dis-freq-hz = <800000000>;
+       rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>;
+};
+
 &edp {
        status = "okay";
 
index a9817b3..913d845 100644 (file)
@@ -391,6 +391,18 @@ camera: &i2c7 {
                <400000000>;
 };
 
+/* The center supply is fixed to .9V on scarlet */
+&dmc {
+       center-supply = <&pp900_s0>;
+};
+
+/* We don't need .925 V for 928 MHz on scarlet */
+&dmc_opp_table {
+       opp03 {
+               opp-microvolt = <900000>;
+       };
+};
+
 &gpio0 {
        gpio-line-names = /* GPIO0 A 0-7 */
                          "CLK_32K_AP",
index 162f08b..23bfba8 100644 (file)
                <200000000>;
 };
 
+&dfi {
+       status = "okay";
+};
+
+&dmc {
+       status = "okay";
+
+       rockchip,pd-idle-ns = <160>;
+       rockchip,sr-idle-ns = <10240>;
+       rockchip,sr-mc-gate-idle-ns = <40960>;
+       rockchip,srpd-lite-idle-ns = <61440>;
+       rockchip,standby-idle-ns = <81920>;
+
+       rockchip,ddr3_odt_dis_freq = <666000000>;
+       rockchip,lpddr3_odt_dis_freq = <666000000>;
+       rockchip,lpddr4_odt_dis_freq = <666000000>;
+
+       rockchip,sr-mc-gate-idle-dis-freq-hz = <1000000000>;
+       rockchip,srpd-lite-idle-dis-freq-hz = <0>;
+       rockchip,standby-idle-dis-freq-hz = <928000000>;
+};
+
+&dmc_opp_table {
+       opp03 {
+               opp-suspend;
+       };
+};
+
 &emmc_phy {
        status = "okay";
 };
index bee45c1..7af27e8 100644 (file)
@@ -2,6 +2,7 @@
 /dts-v1/;
 #include <dt-bindings/pwm/pwm.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
 
                compatible = "brcm,bcm4329-fmac";
                reg = <1>;
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_host_wake_l>;
index 7ba3ed2..46c4581 100644 (file)
@@ -6,6 +6,7 @@
 
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                brcm,drive-strength = <5>;
                pinctrl-names = "default";
index 5bbe74b..a21ac31 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 #include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/pwm/pwm.h>
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
                compatible = "brcm,bcm4329-fmac";
                reg = <1>;
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_host_wake_l>;
index 8c0ff6c..248ad41 100644 (file)
                interrupt-parent = <&gpio1>;
                interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
-               pinctrl-0 = <&pmic_int_l>;
+               pinctrl-0 = <&pmic_int_l>, <&ap_pwroff>, <&clk_32k>;
                rockchip,system-power-controller;
                wakeup-source;
 
index 2180e0f..6e29e74 100644 (file)
                        opp-microvolt = <1075000>;
                };
        };
+
+       dmc_opp_table: dmc_opp_table {
+               compatible = "operating-points-v2";
+
+               opp00 {
+                       opp-hz = /bits/ 64 <400000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp01 {
+                       opp-hz = /bits/ 64 <666000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp02 {
+                       opp-hz = /bits/ 64 <800000000>;
+                       opp-microvolt = <900000>;
+               };
+               opp03 {
+                       opp-hz = /bits/ 64 <928000000>;
+                       opp-microvolt = <925000>;
+               };
+       };
 };
 
 &cpu_l0 {
        operating-points-v2 = <&cluster1_opp>;
 };
 
+&dmc {
+       operating-points-v2 = <&dmc_opp_table>;
+};
+
 &gpu {
        operating-points-v2 = <&gpu_opp_table>;
 };
index 9d3a718..ed856bf 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "dt-bindings/pwm/pwm.h"
 #include "dt-bindings/input/input.h"
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "dt-bindings/usb/pd.h"
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_host_wake_l>;
index cf48746..0806545 100644 (file)
@@ -23,7 +23,7 @@
                compatible = "brcm,bcm4329-fmac";
                reg = <1>;
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_host_wake_l>;
index 793d848..4053ba7 100644 (file)
@@ -31,7 +31,7 @@
                compatible = "brcm,bcm4329-fmac";
                reg = <1>;
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_host_wake_l>;
index 25dc61c..94e39ed 100644 (file)
@@ -7,6 +7,7 @@
 
 #include "rk3399.dtsi"
 #include "rk3399-opp.dtsi"
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
        aliases {
                compatible = "brcm,bcm4329-fmac";
                reg = <1>;
                interrupt-parent = <&gpio0>;
-               interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-names = "host-wake";
                pinctrl-names = "default";
                pinctrl-0 = <&wifi_host_wake_l>;
index 080457a..fbd0346 100644 (file)
                ports = <&vopl_out>, <&vopb_out>;
        };
 
+       dmc: memory-controller {
+               compatible = "rockchip,rk3399-dmc";
+               rockchip,pmu = <&pmugrf>;
+               devfreq-events = <&dfi>;
+               clocks = <&cru SCLK_DDRC>;
+               clock-names = "dmc_clk";
+               status = "disabled";
+       };
+
        pmu_a53 {
                compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW &ppi_cluster0>;
                status = "disabled";
        };
 
+       dfi: dfi@ff630000 {
+               reg = <0x00 0xff630000 0x00 0x4000>;
+               compatible = "rockchip,rk3399-dfi";
+               rockchip,pmu = <&pmugrf>;
+               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru PCLK_DDR_MON>;
+               clock-names = "pclk_ddr_mon";
+               status = "disabled";
+       };
+
        vpu: video-codec@ff650000 {
                compatible = "rockchip,rk3399-vpu";
                reg = <0x0 0xff650000 0x0 0x800>;
                clock-names = "apb_pclk";
        };
 
-       pmucru: pmu-clock-controller@ff750000 {
+       pmucru: clock-controller@ff750000 {
                compatible = "rockchip,rk3399-pmucru";
                reg = <0x0 0xff750000 0x0 0x1000>;
+               clocks = <&xin24m>;
+               clock-names = "xin24m";
                rockchip,grf = <&pmugrf>;
                #clock-cells = <1>;
                #reset-cells = <1>;
        cru: clock-controller@ff760000 {
                compatible = "rockchip,rk3399-cru";
                reg = <0x0 0xff760000 0x0 0x1000>;
+               clocks = <&xin24m>;
+               clock-names = "xin24m";
                rockchip,grf = <&grf>;
                #clock-cells = <1>;
                #reset-cells = <1>;
                        reg = <0xf780 0x24>;
                        clocks = <&sdhci>;
                        clock-names = "emmcclk";
+                       drive-impedance-ohm = <50>;
                        #phy-cells = <0>;
                        status = "disabled";
                };
                        clock-names = "refclk";
                        #phy-cells = <1>;
                        resets = <&cru SRST_PCIEPHY>;
-                       drive-impedance-ohm = <50>;
                        reset-names = "phy";
                        status = "disabled";
                };
                         <&cru SCLK_HDMI_CEC>,
                         <&cru PCLK_VIO_GRF>,
                         <&cru PLL_VPLL>;
-               clock-names = "iahb", "isfr", "cec", "grf", "vpll";
+               clock-names = "iahb", "isfr", "cec", "grf", "ref";
                power-domains = <&power RK3399_PD_HDCP>;
                reg-io-width = <4>;
                rockchip,grf = <&grf>;
                        output-low;
                };
 
+               pcfg_input_enable: pcfg-input-enable {
+                       input-enable;
+               };
+
+               pcfg_input_pull_up: pcfg-input-pull-up {
+                       input-enable;
+                       bias-pull-up;
+                       drive-strength = <2>;
+               };
+
+               pcfg_input_pull_down: pcfg-input-pull-down {
+                       input-enable;
+                       bias-pull-down;
+                       drive-strength = <2>;
+               };
+
                clock {
                        clk_32k: clk-32k {
                                rockchip,pins = <0 RK_PA0 2 &pcfg_pull_none>;
index fea748a..e01668e 100644 (file)
                        default-brightness = <0>;
                };
        };
+
+       wusb3801: tcpc@60 {
+               compatible = "willsemi,wusb3801";
+               reg = <0x60>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&tcpc_int_l>;
+               pinctrl-names = "default";
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       vbus-supply = <&otg_switch>;
+                       power-role = "dual";
+                       try-power-role = "sink";
+                       data-role = "dual";
+                       typec-power-opmode = "default";
+                       pd-disable;
+
+                       ports {
+                               #address-cells = <0x1>;
+                               #size-cells = <0x0>;
+
+                               port@0 {
+                                       reg = <0x0>;
+
+                                       typec_hs_usb2phy0: endpoint {
+                                               remote-endpoint = <&usb2phy0_typec_hs>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       accelerometer@18 {
+               compatible = "silan,sc7a20";
+               reg = <0x18>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&accelerometer_int_l>;
+               pinctrl-names = "default";
+               st,drdy-int-pin = <1>;
+               vdd-supply = <&vcc_3v3>;
+               vddio-supply = <&vcc_3v3>;
+       };
 };
 
 &i2s1_8ch {
 };
 
 &pinctrl {
+       accelerometer {
+               accelerometer_int_l: accelerometer-int-l {
+                       rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        audio-amplifier {
                spk_amp_enable_h: spk-amp-enable-h {
                        rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
 
+       tcpc {
+               tcpc_int_l: tcpc-int-l {
+                       rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
        vcc-wl {
                vcc_wl_pin: vcc-wl-pin {
                        rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
 &uart2 {
        status = "okay";
 };
+
+&usb_host0_xhci {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+
+       port {
+               usb2phy0_typec_hs: endpoint {
+                       remote-endpoint = <&typec_hs_usb2phy0>;
+               };
+       };
+};
index dd7f4b9..141a433 100644 (file)
                vin-supply = <&vcc5v0_usb>;
        };
 
+       vcc5v0_usb20_otg: vcc5v0_usb20_otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc5v0_usb20_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dcdc_boost>;
+       };
+
        vcc3v3_sd: vcc3v3_sd {
                compatible = "regulator-fixed";
                enable-active-low;
        };
 };
 
+&combphy1 {
+       status = "okay";
+};
+
 &cpu0 {
        cpu-supply = <&vdd_cpu>;
 };
        status = "okay";
 };
 
+&usb_host0_xhci {
+       status = "okay";
+};
+
+/* usb3 controller is muxed with sata1 */
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb20_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb20_otg>;
+       status = "okay";
+};
+
 &usb2phy1 {
        status = "okay";
 };
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts b/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
new file mode 100644 (file)
index 0000000..7bdcecc
--- /dev/null
@@ -0,0 +1,615 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Pine64 RK3566 Quartz64-B Board";
+       compatible = "pine64,quartz64-b", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdmmc0;
+               mmc1 = &sdhci;
+               mmc2 = &sdmmc1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       gmac1_clkin: external-gmac1-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac1_clkin";
+               #clock-cells = <0>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-user {
+                       label = "user-led";
+                       default-state = "on";
+                       gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_led_enable_h>;
+                       retain-state-suspended;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               status = "okay";
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+               post-power-on-delay-ms = <100>;
+               power-off-delay-us = <5000000>;
+       };
+
+       vcc5v0_in: vcc5v0-in-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_in";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_in>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb30_host";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb30_host_en_h>;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb_otg";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_otg_en_h>;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
+       clock_in_out = "input";
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_clkinout
+                    &gmac1m1_rgmii_bus>;
+       snps,reset-gpio = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       /* Reset time is 20ms, 100ms for rtl8211f, also works well here */
+       snps,reset-delays-us = <0 20000 100000>;
+       tx_delay = <0x4f>;
+       rx_delay = <0x24>;
+       phy-handle = <&rgmii_phy1>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int>;
+               rockchip,system-power-controller;
+               wakeup-source;
+               #clock-cells = <1>;
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+
+               regulators {
+                       vdd_log: DCDC_REG1 {
+                               regulator-name = "vdd_log";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               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>;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               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>;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_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>;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_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>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               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_3v3: SWITCH_REG1 {
+                               regulator-boot-on;
+                               regulator-name = "vcc_3v3";
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+                       };
+               };
+       };
+};
+
+/* i2c2_m1 exposed on csi port, pulled up to vcc_3v3 */
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2m1_xfer>;
+       status = "okay";
+};
+
+/* i2c3_m1 exposed on dsi port, pulled up to vcc_3v3 */
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m1_xfer>;
+       status = "okay";
+};
+
+/*
+ * i2c4_m0 is exposed on PI40, pulled up to vcc_3v3
+ * pin 27 - i2c4_sda_m0
+ * pin 28 - i2c4_scl_m0
+ */
+&i2c4 {
+       status = "okay";
+};
+
+/*
+ * i2c5_m0 is exposed on PI40
+ * pin 29 - i2c5_scl_m0
+ * pin 31 - i2c5_sda_m0
+ */
+&i2c5 {
+       status = "disabled";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+       };
+};
+
+&pinctrl {
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               user_led_enable_h: user-led-enable-h {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic_int {
+                       rockchip,pins =
+                               <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_usb30_host_en_h: vcc5v0-usb30-host-en_h {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_usb_otg_en_h: vcc5v0-usb-otg-en_h {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       status = "okay";
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcca1v8_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcca1v8_pmu>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_3v3>;
+       vccio7-supply = <&vcc_3v3>;
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcca1v8_pmu>;
+       status = "okay";
+};
+
+&sfc {
+       pinctrl-0 = <&fspi_pins>;
+       pinctrl-names = "default";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <24000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
+       status = "okay";
+       uart-has-rtscts;
+
+       bluetooth {
+               compatible = "brcm,bcm4345c5";
+               clocks = <&rk809 1>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcca1v8_pmu>;
+       };
+};
+
+/*
+ * uart2_m0 is exposed on PI40
+ * pin 8  - uart2_tx_m0
+ * pin 10 - uart2_rx_m0
+ */
+&uart2 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts b/arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts
new file mode 100644 (file)
index 0000000..57759b6
--- /dev/null
@@ -0,0 +1,579 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Firefly Station M2";
+       compatible = "firefly,rk3566-roc-pc", "rockchip,rk3566";
+
+       aliases {
+               mmc0 = &sdmmc0;
+               mmc1 = &sdhci;
+               mmc2 = &sdmmc1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       gmac1_clkin: external-gmac1-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac1_clkin";
+               #clock-cells = <0>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-user {
+                       label = "user-led";
+                       default-state = "on";
+                       gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_led_enable_h>;
+                       retain-state-suspended;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               status = "okay";
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
+       };
+
+       usb_5v: usb-5v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "usb_5v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&usb_5v>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_sys";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb30_host";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb30_host_en_h>;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb_otg";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_otg_en_h>;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
+       clock_in_out = "input";
+       phy-mode = "rgmii-id";
+       phy-supply = <&vcc_3v3>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m0_miim
+                    &gmac1m0_tx_bus2
+                    &gmac1m0_rx_bus2
+                    &gmac1m0_rgmii_clk
+                    &gmac1m0_clkinout
+                    &gmac1m0_rgmii_bus>;
+       snps,reset-gpio = <&gpio0 RK_PB7 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       /* Reset time is 20ms, 100ms for rtl8211f */
+       snps,reset-delays-us = <0 20000 100000>;
+       tx_delay = <0x4f>;
+       rx_delay = <0x24>;
+       phy-handle = <&rgmii_phy1>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int>;
+               rockchip,system-power-controller;
+               wakeup-source;
+               #clock-cells = <1>;
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+
+               regulators {
+                       vdd_log: DCDC_REG1 {
+                               regulator-name = "vdd_log";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-name = "vcc_ddr";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               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>;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               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>;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_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>;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_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>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               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_3v3: SWITCH_REG1 {
+                               regulator-boot-on;
+                               regulator-name = "vcc3v3";
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                       };
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m1_xfer>;
+       status = "okay";
+};
+
+&i2c5 {
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0>;
+       };
+};
+
+&pinctrl {
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               user_led_enable_h: user-led-enable-h {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic_int {
+                       rockchip,pins =
+                               <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_usb30_host_en_h: vcc5v0-usb30-host-en_h {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_usb_otg_en_h: vcc5v0-usb-otg-en_h {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       status = "okay";
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_1v8>;
+       vccio7-supply = <&vcc_3v3>;
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcca1v8_pmu>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
+       status = "okay";
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_xfer>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>;
+       status = "okay";
+       uart-has-rtscts;
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               clocks = <&rk809 1>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcca1v8_pmu>;
+       };
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts b/arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts
new file mode 100644 (file)
index 0000000..e00568a
--- /dev/null
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3566-soquartz.dtsi"
+
+/ {
+       model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
+       compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
+
+       /* labeled +12v in schematic */
+       vcc12v_dcin: vcc12v-dcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       /* labeled +5v in schematic */
+       vcc_5v: vcc-5v-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_5v";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+};
+
+&gmac1 {
+       status = "okay";
+};
+
+/*
+ * i2c1 is exposed on CM1 / Module1A
+ * pin 80 - SCL0 - i2c1_scl_m0, pullup to vcc3v3_pmu
+ * pin 82 - SDA0 - i2c1_sda_m0, pullup to vcc3v3_pmu
+ */
+&i2c1 {
+       status = "okay";
+
+       /*
+        * the rtc interrupt is tied to PMIC_PWRON,
+        * it will force reset the board if triggered.
+        */
+       pcf85063: rtc@51 {
+               compatible = "nxp,pcf85063";
+               reg = <0x51>;
+       };
+};
+
+/*
+ * i2c2 is exposed on CM1 / Module1A - to PI40
+ * pin 56 - GPIO3 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
+ * pin 58 - GPIO2 - i2c2_sda_m1, pullup to vcc_3v3
+ */
+&i2c2 {
+       status = "disabled";
+};
+
+/*
+ * i2c3 is exposed on CM1 / Module1A - to PI40
+ * pin 35 - ID_SC(GPIO28) - i2c3_scl_m0, pullup to vcc_3v3
+ * pin 36 - ID_SD(GPIO27) - i2c3_sda_m0, pullup to vcc_3v3
+ */
+&i2c3 {
+       status = "disabled";
+};
+
+/*
+ * i2c4 is exposed on CM2 / Module1B - to PI40
+ * pin 45 - GPIO24 - i2c4_scl_m1
+ * pin 47 - GPIO23 - i2c4_sda_m1
+ */
+&i2c4 {
+       status = "disabled";
+};
+
+/*
+ * i2s1_8ch is exposed on CM1 / Module1A - to PI40
+ * pin 24 - GPIO26 - i2s1_sdi1_m1
+ * pin 25 - GPIO21 - i2s1_sdo0_m1
+ * pin 26 - GPIO19 - i2s1_lrck_tx_m1
+ * pin 27 - GPIO20 - i2s1_sdi0_m1
+ * pin 29 - GPIO16 - i2s1_sdi3_m1
+ * pin 30 - GPIO6  - i2s1_sdi2_m1
+ * pin 40 - GPIO9  - i2s1_sdo1_m1, shared with spi3
+ * pin 41 - GPIO25 - i2s1_sdo2_m1
+ * pin 49 - GPIO18 - i2s1_sclk_tx_m1
+ * pin 50 - GPIO17 - i2s1_mclk_m1
+ * pin 56 - GPIO3  - i2s1_sdo3_m1, shared with i2c2
+ */
+&i2s1_8ch {
+       status = "disabled";
+};
+
+&led_diy {
+       status = "okay";
+};
+
+&led_work {
+       status = "okay";
+};
+
+&rgmii_phy1 {
+       status = "okay";
+};
+
+/*
+ * saradc is exposed on CM1 / Module1A - to J2
+ * pin 94 - AIN1 - saradc_vin3
+ * pin 96 - AIN0 - saradc_vin2
+ */
+&saradc {
+       status = "disabled";
+};
+
+&sdmmc0 {
+       vmmc-supply = <&sdmmc_pwr>;
+       status = "okay";
+};
+
+&sdmmc_pwr {
+       regulator-min-microvolt = <3300000>;
+       regulator-max-microvolt = <3300000>;
+       status = "okay";
+};
+
+/*
+ *  spi3 is exposed on CM1 / Module1A - to PI40
+ * pin 37 - GPIO7  - spi3_cs1_m0
+ * pin 38 - GPIO11 - spi3_clk_m0
+ * pin 39 - GPIO8  - spi3_cs0_m0
+ * pin 40 - GPIO9  - spi3_miso_m0, shared with i2s1_8ch
+ * pin 44 - GPIO10 - spi3_mosi_m0
+ */
+&spi3 {
+       status = "disabled";
+};
+
+/*
+ * uart2 is exposed on CM1 / Module1A - to PI40
+ * pin 51 - GPIO15 - uart2_rx_m0
+ * pin 55 - GPIO14 - uart2_tx_m0
+ */
+&uart2 {
+       status = "okay";
+};
+
+/*
+ * uart7 is exposed on CM1 / Module1A - to PI40
+ * pin 46 - GPIO22 - uart7_tx_m2
+ * pin 47 - GPIO23 - uart7_rx_m2
+ */
+&uart7 {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc_5v>;
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       status = "okay";
+};
+
+&vbus {
+       vin-supply = <&vcc_5v>;
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi
new file mode 100644 (file)
index 0000000..5bcd4be
--- /dev/null
@@ -0,0 +1,616 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Pine64 RK3566 SoQuartz SOM";
+       compatible = "pine64,soquartz", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdmmc0;
+               mmc1 = &sdhci;
+               mmc2 = &sdmmc1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       gmac1_clkin: external-gmac1-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <125000000>;
+               clock-output-names = "gmac1_clkin";
+               #clock-cells = <0>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_diy: led-diy {
+                       label = "diy-led";
+                       default-state = "on";
+                       gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&diy_led_enable_h>;
+                       retain-state-suspended;
+                       status = "disabled";
+               };
+
+               led_work: led-work {
+                       label = "work-led";
+                       default-state = "off";
+                       gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&work_led_enable_h>;
+                       retain-state-suspended;
+                       status = "disabled";
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               status = "okay";
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_enable_h>;
+               reset-gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_LOW>;
+       };
+
+       vbus: vbus-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vbus";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       /* sourced from vbus, vbus is provided by the carrier board */
+       vcc5v0_sys: vcc5v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vbus>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               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>;
+       };
+
+       sdmmc_pwr: sdmmc-pwr-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&sdmmc_pwr_h>;
+               regulator-name = "sdmmc_pwr";
+               status = "disabled";
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>;
+       clock_in_out = "input";
+       phy-supply = <&vcc_3v3>;
+       phy-mode = "rgmii";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m0_miim
+                    &gmac1m0_tx_bus2
+                    &gmac1m0_rx_bus2
+                    &gmac1m0_rgmii_clk
+                    &gmac1m0_clkinout
+                    &gmac1m0_rgmii_bus>;
+       snps,reset-gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_LOW>;
+       snps,reset-active-low;
+       /* Reset time is 20ms, 100ms for rtl8211f, also works well here */
+       snps,reset-delays-us = <0 20000 100000>;
+       tx_delay = <0x30>;
+       rx_delay = <0x10>;
+       phy-handle = <&rgmii_phy1>;
+       status = "disabled";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+               regulator-always-on;
+               regulator-boot-on;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <1>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-ramp-delay = <6001>;
+                               regulator-initial-mode = <0x2>;
+                                       regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vcc_ddr";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-init-microvolt = <900000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-name = "vdd_npu";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               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>;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda0v9_image";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda_0v9";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_acodec";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vccio_sd";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcca_1v8";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcca1v8_pmu";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcca1v8_image";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3: SWITCH_REG1 {
+                               regulator-name = "vcc_3v3";
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+                               status = "disabled";
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+               };
+       };
+};
+
+/*
+ * i2c1 is exposed on CM1 / Module1A
+ * pin 80 - i2c1_scl_m0, pullup to vcc3v3_pmu
+ * pin 82 - i2c1_sda_m0, pullup to vcc3v3_pmu
+ */
+&i2c1 {
+       status = "disabled";
+};
+
+/*
+ * i2c2 is exposed on CM1 / Module1A
+ * pin 56 - i2c2_scl_m1, pullup to vcc_3v3, shared with i2s1_8ch
+ * pin 58 - i2c2_sda_m1, pullup to vcc_3v3
+ */
+&i2c2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2m1_xfer>;
+       status = "disabled";
+};
+
+/*
+ * i2c3 is exposed on CM1 / Module1A
+ * pin 35 - i2c3_scl_m0, pullup to vcc_3v3
+ * pin 36 - i2c3_sda_m0, pullup to vcc_3v3
+ */
+&i2c3 {
+       status = "disabled";
+};
+
+/*
+ * i2c4 is exposed on CM2 / Module1B
+ * pin 45 - i2c4_scl_m1
+ * pin 47 - i2c4_sda_m1
+ */
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4m1_xfer>;
+       status = "disabled";
+};
+
+/*
+ * i2s1_8ch is exposed on CM1 / Module1A
+ * pin 24 - i2s1_sdi1_m1
+ * pin 25 - i2s1_sdo0_m1
+ * pin 26 - i2s1_lrck_tx_m1
+ * pin 27 - i2s1_sdi0_m1
+ * pin 29 - i2s1_sdi3_m1
+ * pin 30 - i2s1_sdi2_m1
+ * pin 40 - i2s1_sdo1_m1, shared with spi3
+ * pin 41 - i2s1_sdo2_m1
+ * pin 49 - i2s1_sclk_tx_m1
+ * pin 50 - i2s1_mclk_m1
+ * pin 56 - i2s1_sdo3_m1, shared with i2c2
+ */
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m1_sclktx &i2s1m1_sclkrx
+                    &i2s1m1_lrcktx &i2s1m1_lrckrx
+                    &i2s1m1_sdi0   &i2s1m1_sdi1
+                    &i2s1m1_sdi2   &i2s1m1_sdi3
+                    &i2s1m1_sdo0   &i2s1m1_sdo1
+                    &i2s1m1_sdo2   &i2s1m1_sdo3>;
+       status = "disabled";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0>;
+               status = "disabled";
+       };
+};
+
+&pinctrl {
+       bt {
+               bt_enable_h: bt-enable-h {
+                       rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_l: bt-host-wake-l {
+                       rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_l: bt-wake-l {
+                       rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               work_led_enable_h: work-led-enable-h {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               diy_led_enable_h: diy-led-enable-h {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins = <2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sdmmc-pwr {
+               sdmmc_pwr_h: sdmmc-pwr-h {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vcc_3v3>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_3v3>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+/*
+ * saradc is exposed on CM1 / Module1A
+ * pin 94 - saradc_vin3
+ * pin 96 - saradc_vin2
+ */
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "disabled";
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       broken-cd;
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "disabled";
+};
+
+&sdmmc1 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+/*
+ * spi3 is exposed on CM1 / Module1A
+ * pin 37 - spi3_cs1_m0
+ * pin 38 - spi3_clk_m0
+ * pin 39 - spi3_cs0_m0
+ * pin 40 - spi3_miso_m0, shared with i2s1_8ch
+ * pin 44 - spi3_mosi_m0
+ */
+&spi3 {
+       status = "disabled";
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "brcm,bcm43438-bt";
+               clocks = <&rk809 1>;
+               clock-names = "lpo";
+               device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
+               host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>;
+               shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
+               vbat-supply = <&vcc3v3_sys>;
+               vddio-supply = <&vcca1v8_pmu>;
+       };
+};
+
+/*
+ * uart2 is exposed on CM1 / Module1A
+ * pin 51 - uart2_rx_m0
+ * pin 55 - uart2_tx_m0
+ */
+&uart2 {
+       status = "disabled";
+};
+
+/*
+ * uart7 is exposed on CM1 / Module1A
+ * pin 46 - uart7_tx_m2
+ * pin 47 - uart7_rx_m2
+ */
+&uart7 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart7m2_xfer>;
+       status = "disabled";
+};
+
+/* dwc3_otg is the only usb port available */
+&usb2phy0 {
+       status = "disabled";
+};
+
+&usb2phy0_otg {
+       status = "disabled";
+};
+
+&usb_host0_xhci {
+       status = "disabled";
+};
index 3839eef..0b95706 100644 (file)
@@ -6,6 +6,10 @@
        compatible = "rockchip,rk3566";
 };
 
+&pipegrf {
+       compatible = "rockchip,rk3566-pipe-grf", "syscon";
+};
+
 &power {
        power-domain@RK3568_PD_PIPE {
                reg = <RK3568_PD_PIPE>;
                #power-domain-cells = <0>;
        };
 };
+
+&usb_host0_xhci {
+       phys = <&usb2phy0_otg>;
+       phy-names = "usb2-phy";
+       extcon = <&usb2phy0>;
+       maximum-speed = "high-speed";
+};
index 067fe4a..40cf223 100644 (file)
                regulator-max-microvolt = <5000000>;
                vin-supply = <&dc_12v>;
        };
+
+       vcc5v0_usb: vcc5v0_usb {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&dc_12v>;
+       };
+
+       vcc5v0_usb_host: vcc5v0-usb-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_host_en>;
+               regulator-name = "vcc5v0_usb_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
+       vcc5v0_usb_otg: vcc5v0-usb-otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_otg_en>;
+               regulator-name = "vcc5v0_usb_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+};
+
+&combphy0 {
+       /* used for USB3 */
+       status = "okay";
+};
+
+&combphy1 {
+       /* used for USB3 */
+       status = "okay";
+};
+
+&combphy2 {
+       /* used for SATA */
+       status = "okay";
 };
 
 &gmac0 {
                                <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
+
+       usb {
+               vcc5v0_usb_host_en: vcc5v0_usb_host_en {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &pmu_io_domains {
        status = "okay";
 };
 
+&sata2 {
+       status = "okay";
+};
+
 &sdhci {
        bus-width = <8>;
        max-frequency = <200000000>;
        pinctrl-0 = <&uart9m1_xfer>;
        status = "disabled";
 };
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       extcon = <&usb2phy0>;
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
index a794a0e..622be8b 100644 (file)
                vin-supply = <&vcc5v0_usb>;
        };
 
+       vcc5v0_usb_otg: vcc5v0-usb-otg {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_otg_en>;
+               regulator-name = "vcc5v0_usb_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
        vcc3v3_lcd0_n: vcc3v3-lcd0-n {
                compatible = "regulator-fixed";
                regulator-name = "vcc3v3_lcd0_n";
        };
 };
 
+&combphy0 {
+       status = "okay";
+};
+
+&combphy1 {
+       status = "okay";
+};
+
 &cpu0 {
        cpu-supply = <&vdd_cpu>;
 };
                vcc5v0_usb_host_en: vcc5v0_usb_host_en {
                        rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
                };
+               vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
        };
 };
 
        status = "okay";
 };
 
+&usb_host0_xhci {
+       extcon = <&usb2phy0>;
+       status = "okay";
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       vbus-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
 &usb2phy1 {
        status = "okay";
 };
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts b/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
new file mode 100644 (file)
index 0000000..0813c0c
--- /dev/null
@@ -0,0 +1,562 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3568.dtsi"
+
+/ {
+       model = "Radxa ROCK3 Model A";
+       compatible = "radxa,rock3a", "rockchip,rk3568";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdmmc0;
+               mmc1 = &sdhci;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led_user: led-0 {
+                       gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&led_user_en>;
+               };
+       };
+
+       rk809-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Analog RK809";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk809>;
+               };
+       };
+
+       vcc12v_dcin: vcc12v-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
+       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 = <&vcc12v_dcin>;
+       };
+
+       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>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_usb: vcc5v0-usb {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_usb";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+
+       vcc5v0_usb_host: vcc5v0-usb-host {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_host_en>;
+               regulator-name = "vcc5v0_usb_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
+       vcc5v0_usb_hub: vcc5v0-usb-hub-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_hub_en>;
+               regulator-name = "vcc5v0_usb_hub";
+               regulator-always-on;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
+       vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb_otg_en>;
+               regulator-name = "vcc5v0_usb_otg";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_cpu>;
+};
+
+&gmac1 {
+       assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
+       assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
+       assigned-clock-rates = <0>, <125000000>;
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_rgmii_bus>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@1c {
+               compatible = "tcs,tcs4525";
+               reg = <0x1c>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <800000>;
+               regulator-max-microvolt = <1150000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+               assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+               #clock-cells = <1>;
+               clock-names = "mclk";
+               clocks = <&cru I2S1_MCLKOUT_TX>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
+               rockchip,system-power-controller;
+               #sound-dai-cells = <0>;
+               vcc1-supply = <&vcc3v3_sys>;
+               vcc2-supply = <&vcc3v3_sys>;
+               vcc3-supply = <&vcc3v3_sys>;
+               vcc4-supply = <&vcc3v3_sys>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc3v3_sys>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               wakeup-source;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-init-microvolt = <900000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-init-microvolt = <900000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               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-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vdd_npu: DCDC_REG4 {
+                               regulator-name = "vdd_npu";
+                               regulator-init-microvolt = <900000>;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8: DCDC_REG5 {
+                               regulator-name = "vcc_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_image: LDO_REG1 {
+                               regulator-name = "vdda0v9_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda_0v9: LDO_REG2 {
+                               regulator-name = "vdda_0v9";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdda0v9_pmu: LDO_REG3 {
+                               regulator-name = "vdda0v9_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vccio_acodec: LDO_REG4 {
+                               regulator-name = "vccio_acodec";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-name = "vccio_sd";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "vcc3v3_pmu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcca_1v8: LDO_REG7 {
+                               regulator-name = "vcca_1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcca1v8_pmu: LDO_REG8 {
+                               regulator-name = "vcca1v8_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>;
+                               };
+                       };
+
+                       vcca1v8_image: LDO_REG9 {
+                               regulator-name = "vcca1v8_image";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3: SWITCH_REG1 {
+                               regulator-name = "vcc_3v3";
+                               regulator-always-on;
+                               regulator-boot-on;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: SWITCH_REG2 {
+                               regulator-name = "vcc3v3_sd";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+
+               codec {
+                       mic-in-differential;
+               };
+       };
+};
+
+&i2s1_8ch {
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&eth_phy_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pinctrl {
+       ethernet {
+               eth_phy_rst: eth_phy_rst {
+                       rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               led_user_en: led_user_en {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic_int {
+                       rockchip,pins =
+                               <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               vcc5v0_usb_host_en: vcc5v0_usb_host_en {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               vcc5v0_usb_hub_en: vcc5v0_usb_hub_en {
+                       rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
+                       rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vccio_acodec>;
+       vccio2-supply = <&vcc_1v8>;
+       vccio3-supply = <&vccio_sd>;
+       vccio4-supply = <&vcc_1v8>;
+       vccio5-supply = <&vcc_3v3>;
+       vccio6-supply = <&vcc_1v8>;
+       vccio7-supply = <&vcc_3v3>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+       vmmc-supply = <&vcc_3v3>;
+       vqmmc-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdmmc0 {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       extcon = <&usb2phy0>;
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       vbus-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb_host>;
+       status = "okay";
+};
index 5b0f528..5eafddf 100644 (file)
@@ -8,6 +8,20 @@
 / {
        compatible = "rockchip,rk3568";
 
+       sata0: sata@fc000000 {
+               compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfc000000 0 0x1000>;
+               clocks = <&cru ACLK_SATA0>, <&cru CLK_SATA0_PMALIVE>,
+                        <&cru CLK_SATA0_RXOOB>;
+               clock-names = "sata", "pmalive", "rxoob";
+               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+               phys = <&combphy0 PHY_TYPE_SATA>;
+               phy-names = "sata-phy";
+               ports-implemented = <0x1>;
+               power-domains = <&power RK3568_PD_PIPE>;
+               status = "disabled";
+       };
+
        pipe_phy_grf0: syscon@fdc70000 {
                compatible = "rockchip,rk3568-pipe-phy-grf", "syscon";
                reg = <0x0 0xfdc70000 0x0 0x1000>;
        };
 };
 
+&pipegrf {
+       compatible = "rockchip,rk3568-pipe-grf", "syscon";
+};
+
 &power {
        power-domain@RK3568_PD_PIPE {
                reg = <RK3568_PD_PIPE>;
                #power-domain-cells = <0>;
        };
 };
+
+&usb_host0_xhci {
+       phys = <&usb2phy0_otg>, <&combphy0 PHY_TYPE_USB3>;
+       phy-names = "usb2-phy", "usb3-phy";
+};
index 7cdef80..1042e68 100644 (file)
                };
        };
 
+       sata1: sata@fc400000 {
+               compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfc400000 0 0x1000>;
+               clocks = <&cru ACLK_SATA1>, <&cru CLK_SATA1_PMALIVE>,
+                        <&cru CLK_SATA1_RXOOB>;
+               clock-names = "sata", "pmalive", "rxoob";
+               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+               phys = <&combphy1 PHY_TYPE_SATA>;
+               phy-names = "sata-phy";
+               ports-implemented = <0x1>;
+               power-domains = <&power RK3568_PD_PIPE>;
+               status = "disabled";
+       };
+
+       sata2: sata@fc800000 {
+               compatible = "rockchip,rk3568-dwc-ahci", "snps,dwc-ahci";
+               reg = <0 0xfc800000 0 0x1000>;
+               clocks = <&cru ACLK_SATA2>, <&cru CLK_SATA2_PMALIVE>,
+                        <&cru CLK_SATA2_RXOOB>;
+               clock-names = "sata", "pmalive", "rxoob";
+               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+               phys = <&combphy2 PHY_TYPE_SATA>;
+               phy-names = "sata-phy";
+               ports-implemented = <0x1>;
+               power-domains = <&power RK3568_PD_PIPE>;
+               status = "disabled";
+       };
+
+       usb_host0_xhci: usb@fcc00000 {
+               compatible = "rockchip,rk3568-dwc3", "snps,dwc3";
+               reg = <0x0 0xfcc00000 0x0 0x400000>;
+               interrupts = <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_USB3OTG0_REF>, <&cru CLK_USB3OTG0_SUSPEND>,
+                        <&cru ACLK_USB3OTG0>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk";
+               dr_mode = "otg";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3568_PD_PIPE>;
+               resets = <&cru SRST_USB3OTG0>;
+               snps,dis_u2_susphy_quirk;
+               status = "disabled";
+       };
+
+       usb_host1_xhci: usb@fd000000 {
+               compatible = "rockchip,rk3568-dwc3", "snps,dwc3";
+               reg = <0x0 0xfd000000 0x0 0x400000>;
+               interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru CLK_USB3OTG1_REF>, <&cru CLK_USB3OTG1_SUSPEND>,
+                        <&cru ACLK_USB3OTG1>;
+               clock-names = "ref_clk", "suspend_clk",
+                             "bus_clk";
+               dr_mode = "host";
+               phys = <&usb2phy0_host>, <&combphy1 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3568_PD_PIPE>;
+               resets = <&cru SRST_USB3OTG1>;
+               snps,dis_u2_susphy_quirk;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@fd400000 {
                compatible = "arm,gic-v3";
                reg = <0x0 0xfd400000 0 0x10000>, /* GICD */
        };
 
        pipegrf: syscon@fdc50000 {
-               compatible = "rockchip,rk3568-pipe-grf", "syscon";
                reg = <0x0 0xfdc50000 0x0 0x1000>;
        };
 
                status = "disabled";
        };
 
+       sfc: spi@fe300000 {
+               compatible = "rockchip,sfc";
+               reg = <0x0 0xfe300000 0x0 0x4000>;
+               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cru SCLK_SFC>, <&cru HCLK_SFC>;
+               clock-names = "clk_sfc", "hclk_sfc";
+               pinctrl-0 = <&fspi_pins>;
+               pinctrl-names = "default";
+               status = "disabled";
+       };
+
        sdhci: mmc@fe310000 {
                compatible = "rockchip,rk3568-dwcmshc";
                reg = <0x0 0xfe310000 0x0 0x10000>;
diff --git a/arch/arm64/boot/dts/synaptics/as370.dtsi b/arch/arm64/boot/dts/synaptics/as370.dtsi
deleted file mode 100644 (file)
index 4bb5d65..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-// SPDX-License-Identifier: (GPL-2.0 OR MIT)
-/*
- * Copyright (C) 2018 Synaptics Incorporated
- *
- * Author: Jisheng Zhang <jszhang@kernel.org>
- */
-
-#include <dt-bindings/interrupt-controller/arm-gic.h>
-
-/ {
-       compatible = "syna,as370";
-       interrupt-parent = <&gic>;
-       #address-cells = <2>;
-       #size-cells = <2>;
-
-       psci {
-               compatible = "arm,psci-1.0";
-               method = "smc";
-       };
-
-       cpus {
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               cpu0: cpu@0 {
-                       compatible = "arm,cortex-a53";
-                       device_type = "cpu";
-                       reg = <0x0>;
-                       enable-method = "psci";
-                       next-level-cache = <&l2>;
-                       cpu-idle-states = <&CPU_SLEEP_0>;
-               };
-
-               cpu1: cpu@1 {
-                       compatible = "arm,cortex-a53";
-                       device_type = "cpu";
-                       reg = <0x1>;
-                       enable-method = "psci";
-                       next-level-cache = <&l2>;
-                       cpu-idle-states = <&CPU_SLEEP_0>;
-               };
-
-               cpu2: cpu@2 {
-                       compatible = "arm,cortex-a53";
-                       device_type = "cpu";
-                       reg = <0x2>;
-                       enable-method = "psci";
-                       next-level-cache = <&l2>;
-                       cpu-idle-states = <&CPU_SLEEP_0>;
-               };
-
-               cpu3: cpu@3 {
-                       compatible = "arm,cortex-a53";
-                       device_type = "cpu";
-                       reg = <0x3>;
-                       enable-method = "psci";
-                       next-level-cache = <&l2>;
-                       cpu-idle-states = <&CPU_SLEEP_0>;
-               };
-
-               l2: cache {
-                       compatible = "cache";
-               };
-
-               idle-states {
-                       entry-method = "psci";
-                       CPU_SLEEP_0: cpu-sleep-0 {
-                               compatible = "arm,idle-state";
-                               local-timer-stop;
-                               arm,psci-suspend-param = <0x0010000>;
-                               entry-latency-us = <75>;
-                               exit-latency-us = <155>;
-                               min-residency-us = <1000>;
-                       };
-               };
-       };
-
-       osc: osc {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <25000000>;
-       };
-
-       pmu {
-               compatible = "arm,cortex-a53-pmu";
-               interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
-                            <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-affinity = <&cpu0>,
-                                    <&cpu1>,
-                                    <&cpu2>,
-                                    <&cpu3>;
-       };
-
-       timer {
-               compatible = "arm,armv8-timer";
-               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
-                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
-       };
-
-       soc@f7000000 {
-               compatible = "simple-bus";
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges = <0 0 0xf7000000 0x1000000>;
-
-               gic: interrupt-controller@901000 {
-                       compatible = "arm,gic-400";
-                       #interrupt-cells = <3>;
-                       interrupt-controller;
-                       reg = <0x901000 0x1000>,
-                             <0x902000 0x2000>,
-                             <0x904000 0x2000>,
-                             <0x906000 0x2000>;
-                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
-               };
-
-               apb@e80000 {
-                       compatible = "simple-bus";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0xe80000 0x10000>;
-
-                       uart0: serial@c00 {
-                               compatible = "snps,dw-apb-uart";
-                               reg = <0xc00 0x100>;
-                               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&osc>;
-                               reg-shift = <2>;
-                               status = "disabled";
-                       };
-
-                       gpio0: gpio@1800 {
-                               compatible = "snps,dw-apb-gpio";
-                               reg = <0x1800 0x400>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               porta: gpio-port@0 {
-                                       compatible = "snps,dw-apb-gpio-port";
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       ngpios = <32>;
-                                       reg = <0>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
-                               };
-                       };
-
-                       gpio1: gpio@2000 {
-                               compatible = "snps,dw-apb-gpio";
-                               reg = <0x2000 0x400>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-
-                               portb: gpio-port@1 {
-                                       compatible = "snps,dw-apb-gpio-port";
-                                       gpio-controller;
-                                       #gpio-cells = <2>;
-                                       ngpios = <32>;
-                                       reg = <0>;
-                                       interrupt-controller;
-                                       #interrupt-cells = <2>;
-                                       interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
-                               };
-                       };
-               };
-       };
-};
index 9a652ab..af39655 100644 (file)
                        reg = <0x0 0x10100000 0x0 0x1000>;
                        interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        clocks = <&clock_imem IMEM_DMA0_IPCLKPORT_ACLK>;
                        clock-names = "apb_pclk";
                        iommus = <&smmu_imem 0x800 0x0>;
                        reg = <0x0 0x10110000 0x0 0x1000>;
                        interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        clocks = <&clock_imem IMEM_DMA1_IPCLKPORT_ACLK>;
                        clock-names = "apb_pclk";
                        iommus = <&smmu_imem 0x801 0x0>;
                        reg = <0x0 0x14280000 0x0 0x1000>;
                        interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        clocks = <&clock_peric PERIC_DMA0_IPCLKPORT_ACLK>;
                        clock-names = "apb_pclk";
                        iommus = <&smmu_peric 0x2 0x0>;
                        reg = <0x0 0x14290000 0x0 0x1000>;
                        interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
                        #dma-cells = <1>;
-                       #dma-channels = <8>;
-                       #dma-requests = <32>;
                        clocks = <&clock_peric PERIC_DMA1_IPCLKPORT_ACLK>;
                        clock-names = "apb_pclk";
                        iommus = <&smmu_peric 0x1 0x0>;
                };
 
                timer@10040000 {
-                       compatible = "samsung,exynos4210-mct";
+                       compatible = "tesla,fsd-mct", "samsung,exynos4210-mct";
                        reg = <0x0 0x10040000 0x0 0x800>;
                        interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
                                <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
index c68472c..d08abad 100644 (file)
@@ -6,6 +6,14 @@
  */
 
 &cbass_main {
+       oc_sram: sram@70000000 {
+               compatible = "mmio-sram";
+               reg = <0x00 0x70000000 0x00 0x10000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0x0 0x00 0x70000000 0x10000>;
+       };
+
        gic500: interrupt-controller@1800000 {
                compatible = "arm,gic-v3";
                #address-cells = <2>;
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0x0 0x00 0x00100000 0x20000>;
+
+               phy_gmii_sel: phy@4044 {
+                       compatible = "ti,am654-phy-gmii-sel";
+                       reg = <0x4044 0x8>;
+                       #phy-cells = <1>;
+               };
        };
 
        dmss: bus@48000000 {
                        interrupt-names = "rx_012";
                        interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
                };
+
+               inta_main_dmss: interrupt-controller@48000000 {
+                       compatible = "ti,sci-inta";
+                       reg = <0x00 0x48000000 0x00 0x100000>;
+                       #interrupt-cells = <0>;
+                       interrupt-controller;
+                       interrupt-parent = <&gic500>;
+                       msi-controller;
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <28>;
+                       ti,interrupt-ranges = <4 68 36>;
+                       ti,unmapped-event-sources = <&main_bcdma>, <&main_pktdma>;
+               };
+
+               main_bcdma: dma-controller@485c0100 {
+                       compatible = "ti,am64-dmss-bcdma";
+                       reg = <0x00 0x485c0100 0x00 0x100>,
+                             <0x00 0x4c000000 0x00 0x20000>,
+                             <0x00 0x4a820000 0x00 0x20000>,
+                             <0x00 0x4aa40000 0x00 0x20000>,
+                             <0x00 0x4bc00000 0x00 0x100000>;
+                       reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt";
+                       msi-parent = <&inta_main_dmss>;
+                       #dma-cells = <3>;
+
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <26>;
+                       ti,sci-rm-range-bchan = <0x20>; /* BLOCK_COPY_CHAN */
+                       ti,sci-rm-range-rchan = <0x21>; /* SPLIT_TR_RX_CHAN */
+                       ti,sci-rm-range-tchan = <0x22>; /* SPLIT_TR_TX_CHAN */
+               };
+
+               main_pktdma: dma-controller@485c0000 {
+                       compatible = "ti,am64-dmss-pktdma";
+                       reg = <0x00 0x485c0000 0x00 0x100>,
+                             <0x00 0x4a800000 0x00 0x20000>,
+                             <0x00 0x4aa00000 0x00 0x40000>,
+                             <0x00 0x4b800000 0x00 0x400000>;
+                       reg-names = "gcfg", "rchanrt", "tchanrt", "ringrt";
+                       msi-parent = <&inta_main_dmss>;
+                       #dma-cells = <2>;
+
+                       ti,sci = <&dmsc>;
+                       ti,sci-dev-id = <30>;
+                       ti,sci-rm-range-tchan = <0x23>, /* UNMAPPED_TX_CHAN */
+                                               <0x24>, /* CPSW_TX_CHAN */
+                                               <0x25>, /* SAUL_TX_0_CHAN */
+                                               <0x26>; /* SAUL_TX_1_CHAN */
+                       ti,sci-rm-range-tflow = <0x10>, /* RING_UNMAPPED_TX_CHAN */
+                                               <0x11>, /* RING_CPSW_TX_CHAN */
+                                               <0x12>, /* RING_SAUL_TX_0_CHAN */
+                                               <0x13>; /* RING_SAUL_TX_1_CHAN */
+                       ti,sci-rm-range-rchan = <0x29>, /* UNMAPPED_RX_CHAN */
+                                               <0x2b>, /* CPSW_RX_CHAN */
+                                               <0x2d>, /* SAUL_RX_0_CHAN */
+                                               <0x2f>, /* SAUL_RX_1_CHAN */
+                                               <0x31>, /* SAUL_RX_2_CHAN */
+                                               <0x33>; /* SAUL_RX_3_CHAN */
+                       ti,sci-rm-range-rflow = <0x2a>, /* FLOW_UNMAPPED_RX_CHAN */
+                                               <0x2c>, /* FLOW_CPSW_RX_CHAN */
+                                               <0x2e>, /* FLOW_SAUL_RX_0/1_CHAN */
+                                               <0x32>; /* FLOW_SAUL_RX_2/3_CHAN */
+               };
        };
 
        dmsc: system-controller@44043000 {
                clock-names = "fck";
        };
 
+       main_spi0: spi@20100000 {
+               compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
+               reg = <0x00 0x20100000 0x00 0x400>;
+               interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 141 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 172 0>;
+       };
+
+       main_spi1: spi@20110000 {
+               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+               reg = <0x00 0x20110000 0x00 0x400>;
+               interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 142 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 173 0>;
+       };
+
+       main_spi2: spi@20120000 {
+               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+               reg = <0x00 0x20120000 0x00 0x400>;
+               interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 143 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 174 0>;
+       };
+
        main_gpio_intr: interrupt-controller@a00000 {
                compatible = "ti,sci-intr";
                reg = <0x00 0x00a00000 0x00 0x800>;
                clock-names = "gpio";
        };
 
+       sdhci0: mmc@fa10000 {
+               compatible = "ti,am62-sdhci";
+               reg = <0x00 0x0fa10000 0x00 0x1000>, <0x00 0x0fa18000 0x00 0x400>;
+               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 57 5>, <&k3_clks 57 6>;
+               clock-names = "clk_ahb", "clk_xin";
+               assigned-clocks = <&k3_clks 57 6>;
+               assigned-clock-parents = <&k3_clks 57 8>;
+               mmc-ddr-1_8v;
+               mmc-hs200-1_8v;
+               ti,trm-icp = <0x2>;
+               bus-width = <8>;
+               ti,clkbuf-sel = <0x7>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-mmc-hs = <0x0>;
+               ti,otap-del-sel-ddr52 = <0x9>;
+               ti,otap-del-sel-hs200 = <0x6>;
+       };
+
+       sdhci1: mmc@fa00000 {
+               compatible = "ti,am62-sdhci";
+               reg = <0x00 0x0fa00000 0x00 0x1000>, <0x00 0x0fa08000 0x00 0x400>;
+               interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 58 5>, <&k3_clks 58 6>;
+               clock-names = "clk_ahb", "clk_xin";
+               ti,trm-icp = <0x2>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-sd-hs = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
+               ti,otap-del-sel-sdr50 = <0xc>;
+               ti,otap-del-sel-sdr104 = <0x6>;
+               ti,otap-del-sel-ddr50 = <0x9>;
+               ti,itap-del-sel-legacy = <0x0>;
+               ti,itap-del-sel-sd-hs = <0x0>;
+               ti,itap-del-sel-sdr12 = <0x0>;
+               ti,itap-del-sel-sdr25 = <0x0>;
+               ti,clkbuf-sel = <0x7>;
+               bus-width = <4>;
+       };
+
+       sdhci2: mmc@fa20000 {
+               compatible = "ti,am62-sdhci";
+               reg = <0x00 0x0fa20000 0x00 0x1000>, <0x00 0x0fa28000 0x00 0x400>;
+               interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&k3_pds 184 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 184 5>, <&k3_clks 184 6>;
+               clock-names = "clk_ahb", "clk_xin";
+               ti,trm-icp = <0x2>;
+               ti,otap-del-sel-legacy = <0x0>;
+               ti,otap-del-sel-sd-hs = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
+               ti,otap-del-sel-sdr50 = <0xc>;
+               ti,otap-del-sel-sdr104 = <0x6>;
+               ti,otap-del-sel-ddr50 = <0x9>;
+               ti,itap-del-sel-legacy = <0x0>;
+               ti,itap-del-sel-sd-hs = <0x0>;
+               ti,itap-del-sel-sdr12 = <0x0>;
+               ti,itap-del-sel-sdr25 = <0x0>;
+               ti,clkbuf-sel = <0x7>;
+       };
+
+       fss: bus@fc00000 {
+               compatible = "simple-bus";
+               reg = <0x00 0x0fc00000 0x00 0x70000>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               ospi0: spi@fc40000 {
+                       compatible = "ti,am654-ospi", "cdns,qspi-nor";
+                       reg = <0x00 0x0fc40000 0x00 0x100>,
+                             <0x05 0x00000000 0x01 0x00000000>;
+                       interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
+                       cdns,fifo-depth = <256>;
+                       cdns,fifo-width = <4>;
+                       cdns,trigger-address = <0x0>;
+                       clocks = <&k3_clks 75 7>;
+                       assigned-clocks = <&k3_clks 75 7>;
+                       assigned-clock-parents = <&k3_clks 75 8>;
+                       assigned-clock-rates = <166666666>;
+                       power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
+       cpsw3g: ethernet@8000000 {
+               compatible = "ti,am642-cpsw-nuss";
+               #address-cells = <2>;
+               #size-cells = <2>;
+               reg = <0x00 0x08000000 0x00 0x200000>;
+               reg-names = "cpsw_nuss";
+               ranges = <0x00 0x00 0x00 0x08000000 0x00 0x200000>;
+               clocks = <&k3_clks 13 0>;
+               assigned-clocks = <&k3_clks 13 3>;
+               assigned-clock-parents = <&k3_clks 13 11>;
+               clock-names = "fck";
+               power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
+
+               dmas = <&main_pktdma 0xc600 15>,
+                      <&main_pktdma 0xc601 15>,
+                      <&main_pktdma 0xc602 15>,
+                      <&main_pktdma 0xc603 15>,
+                      <&main_pktdma 0xc604 15>,
+                      <&main_pktdma 0xc605 15>,
+                      <&main_pktdma 0xc606 15>,
+                      <&main_pktdma 0xc607 15>,
+                      <&main_pktdma 0x4600 15>;
+               dma-names = "tx0", "tx1", "tx2", "tx3", "tx4", "tx5", "tx6",
+                           "tx7", "rx";
+
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       cpsw_port1: port@1 {
+                               reg = <1>;
+                               ti,mac-only;
+                               label = "port1";
+                               phys = <&phy_gmii_sel 1>;
+                               mac-address = [00 00 00 00 00 00];
+                               ti,syscon-efuse = <&wkup_conf 0x200>;
+                       };
+
+                       cpsw_port2: port@2 {
+                               reg = <2>;
+                               ti,mac-only;
+                               label = "port2";
+                               phys = <&phy_gmii_sel 2>;
+                               mac-address = [00 00 00 00 00 00];
+                       };
+               };
+
+               cpsw3g_mdio: mdio@f00 {
+                       compatible = "ti,cpsw-mdio","ti,davinci_mdio";
+                       reg = <0x00 0xf00 0x00 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&k3_clks 13 0>;
+                       clock-names = "fck";
+                       bus_freq = <1000000>;
+               };
+
+               cpts@3d000 {
+                       compatible = "ti,j721e-cpts";
+                       reg = <0x00 0x3d000 0x00 0x400>;
+                       clocks = <&k3_clks 13 3>;
+                       clock-names = "cpts";
+                       interrupts-extended = <&gic500 GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "cpts";
+                       ti,cpts-ext-ts-inputs = <4>;
+                       ti,cpts-periodic-outputs = <2>;
+               };
+       };
+
        hwspinlock: spinlock@2a000000 {
                compatible = "ti,am64-hwspinlock";
                reg = <0x00 0x2a000000 0x00 0x1000>;
                ti,mbox-num-users = <4>;
                ti,mbox-num-fifos = <16>;
        };
+
+       ecap0: pwm@23100000 {
+               compatible = "ti,am3352-ecap";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23100000 0x00 0x100>;
+               power-domains = <&k3_pds 51 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 51 0>;
+               clock-names = "fck";
+       };
+
+       ecap1: pwm@23110000 {
+               compatible = "ti,am3352-ecap";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23110000 0x00 0x100>;
+               power-domains = <&k3_pds 52 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 52 0>;
+               clock-names = "fck";
+       };
+
+       ecap2: pwm@23120000 {
+               compatible = "ti,am3352-ecap";
+               #pwm-cells = <3>;
+               reg = <0x00 0x23120000 0x00 0x100>;
+               power-domains = <&k3_pds 53 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 53 0>;
+               clock-names = "fck";
+       };
+
+       main_mcan0: can@20701000 {
+               compatible = "bosch,m_can";
+               reg = <0x00 0x20701000 0x00 0x200>,
+                     <0x00 0x20708000 0x00 0x8000>;
+               reg-names = "m_can", "message_ram";
+               power-domains = <&k3_pds 98 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 98 6>, <&k3_clks 98 1>;
+               clock-names = "hclk", "cclk";
+               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
+       };
 };
index 9d210d5..f56c803 100644 (file)
                clocks = <&k3_clks 106 2>;
                clock-names = "fck";
        };
+
+       mcu_spi0: spi@4b00000 {
+               compatible = "ti,am654-mcspi", "ti,omap4-mcspi";
+               reg = <0x00 0x04b00000 0x00 0x400>;
+               interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 147 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 147 0>;
+       };
+
+       mcu_spi1: spi@4b10000 {
+               compatible = "ti,am654-mcspi","ti,omap4-mcspi";
+               reg = <0x00 0x04b10000 0x00 0x400>;
+               interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               power-domains = <&k3_pds 148 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 148 0>;
+       };
+
+       mcu_gpio_intr: interrupt-controller@4210000 {
+               compatible = "ti,sci-intr";
+               reg = <0x00 0x04210000 0x00 0x200>;
+               ti,intr-trigger-type = <1>;
+               interrupt-controller;
+               interrupt-parent = <&gic500>;
+               #interrupt-cells = <1>;
+               ti,sci = <&dmsc>;
+               ti,sci-dev-id = <5>;
+               ti,interrupt-ranges = <0 104 4>;
+       };
+
+       mcu_gpio0: gpio@4201000 {
+               compatible = "ti,am64-gpio", "ti,keystone-gpio";
+               reg = <0x00 0x4201000 0x00 0x100>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-parent = <&mcu_gpio_intr>;
+               interrupts = <30>, <31>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               ti,ngpio = <24>;
+               ti,davinci-gpio-unbanked = <0>;
+               power-domains = <&k3_pds 79 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 79 0>;
+               clock-names = "gpio";
+       };
 };
index bc2997b..37fcbe7 100644 (file)
@@ -66,6 +66,7 @@
                         <0x00 0x30200000 0x00 0x30200000 0x00 0x00010000>, /* DSS */
                         <0x00 0x31000000 0x00 0x31000000 0x00 0x00050000>, /* USB0 DWC3 Core window */
                         <0x00 0x31100000 0x00 0x31100000 0x00 0x00050000>, /* USB1 DWC3 Core window */
+                        <0x00 0x40900000 0x00 0x40900000 0x00 0x00030000>, /* SA3UL */
                         <0x00 0x43600000 0x00 0x43600000 0x00 0x00010000>, /* SA3 sproxy data */
                         <0x00 0x44043000 0x00 0x44043000 0x00 0x00000fe0>, /* TI SCI DEBUG */
                         <0x00 0x44860000 0x00 0x44860000 0x00 0x00040000>, /* SA3 sproxy config */
index 0de4113..39fb1d7 100644 (file)
@@ -9,6 +9,7 @@
 
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/net/ti-dp83867.h>
 #include "k3-am625.dtsi"
 
 / {
 
        aliases {
                serial2 = &main_uart0;
+               mmc0 = &sdhci0;
+               mmc1 = &sdhci1;
+               mmc2 = &sdhci2;
+               spi0 = &ospi0;
+               ethernet0 = &cpsw_port1;
+               ethernet1 = &cpsw_port2;
        };
 
        chosen {
                regulator-boot-on;
        };
 
+       vdd_mmc1: regulator-3 {
+               /* TPS22918DBVR */
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_mmc1";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               enable-active-high;
+               vin-supply = <&vcc_3v3_sys>;
+               gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
+       };
+
+       vdd_sd_dv: regulator-4 {
+               /* Output of TLV71033 */
+               compatible = "regulator-gpio";
+               regulator-name = "tlv71033";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_sd_dv_pins_default>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               vin-supply = <&vcc_5v0>;
+               gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x0>,
+                        <3300000 0x1>;
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                >;
        };
 
+       main_i2c2_pins_default: main-i2c2-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
+                       AM62X_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
+               >;
+       };
+
+       main_mmc0_pins_default: main-mmc0-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
+                       AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
+                       AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
+                       AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
+                       AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
+                       AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */
+                       AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
+                       AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
+                       AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
+                       AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
+               >;
+       };
+
+       main_mmc1_pins_default: main-mmc1-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
+                       AM62X_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
+                       AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
+                       AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
+                       AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
+                       AM62X_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */
+                       AM62X_IOPAD(0x240, PIN_INPUT, 0) /* (D17) MMC1_SDCD */
+               >;
+       };
+
        usr_led_pins_default: usr-led-pins-default {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */
                >;
        };
+
+       main_mdio1_pins_default: main-mdio1-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
+                       AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
+               >;
+       };
+
+       main_rgmii1_pins_default: main-rgmii1-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
+                       AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
+                       AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
+                       AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
+                       AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
+                       AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
+                       AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */
+                       AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */
+                       AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */
+                       AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */
+                       AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */
+                       AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */
+               >;
+       };
+
+       main_rgmii2_pins_default: main-rgmii2-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */
+                       AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */
+                       AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */
+                       AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */
+                       AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */
+                       AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */
+                       AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */
+                       AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */
+                       AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */
+                       AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */
+                       AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */
+                       AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */
+               >;
+       };
+
+       ospi0_pins_default: ospi0-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */
+                       AM62X_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */
+                       AM62X_IOPAD(0x00c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */
+                       AM62X_IOPAD(0x010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */
+                       AM62X_IOPAD(0x014, PIN_INPUT, 0) /* (F25) OSPI0_D2 */
+                       AM62X_IOPAD(0x018, PIN_INPUT, 0) /* (F24) OSPI0_D3 */
+                       AM62X_IOPAD(0x01c, PIN_INPUT, 0) /* (J23) OSPI0_D4 */
+                       AM62X_IOPAD(0x020, PIN_INPUT, 0) /* (J25) OSPI0_D5 */
+                       AM62X_IOPAD(0x024, PIN_INPUT, 0) /* (H25) OSPI0_D6 */
+                       AM62X_IOPAD(0x028, PIN_INPUT, 0) /* (J22) OSPI0_D7 */
+                       AM62X_IOPAD(0x008, PIN_INPUT, 0) /* (J24) OSPI0_DQS */
+               >;
+       };
+
+       vdd_sd_dv_pins_default: vdd-sd-dv-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */
+               >;
+       };
+
+       main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-pins-default {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
+               >;
+       };
 };
 
 &wkup_uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_i2c1_pins_default>;
        clock-frequency = <400000>;
+
+       exp1: gpio@22 {
+               compatible = "ti,tca6424";
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
+                                  "PRU_DETECT", "MMC1_SD_EN",
+                                  "VPP_LDO_EN", "EXP_PS_3V3_En",
+                                  "EXP_PS_5V0_En", "EXP_HAT_DETECT",
+                                  "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn",
+                                  "UART1_FET_BUF_EN", "WL_LT_EN",
+                                  "GPIO_HDMI_RSTn", "CSI_GPIO1",
+                                  "CSI_GPIO2", "PRU_3V3_EN",
+                                  "HDMI_INTn", "TEST_GPIO2",
+                                  "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
+                                  "MCASP1_FET_SEL", "UART1_FET_SEL",
+                                  "TSINT#", "IO_EXP_TEST_LED";
+
+               interrupt-parent = <&main_gpio1>;
+               interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
+       };
 };
 
 &main_i2c2 {
        status = "disabled";
 };
 
+&sdhci0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mmc0_pins_default>;
+       ti,driver-strength-ohm = <50>;
+       disable-wp;
+};
+
+&sdhci1 {
+       /* SD/MMC */
+       vmmc-supply = <&vdd_mmc1>;
+       vqmmc-supply = <&vdd_sd_dv>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mmc1_pins_default>;
+       ti,driver-strength-ohm = <50>;
+       disable-wp;
+};
+
+&cpsw3g {
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mdio1_pins_default
+                    &main_rgmii1_pins_default
+                    &main_rgmii2_pins_default>;
+};
+
+&cpsw_port1 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&cpsw3g_phy0>;
+};
+
+&cpsw_port2 {
+       phy-mode = "rgmii-rxid";
+       phy-handle = <&cpsw3g_phy1>;
+};
+
+&cpsw3g_mdio {
+       cpsw3g_phy0: ethernet-phy@0 {
+               reg = <0>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,min-output-impedance;
+       };
+
+       cpsw3g_phy1: ethernet-phy@1 {
+               reg = <1>;
+               ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
+               ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
+               ti,min-output-impedance;
+       };
+};
+
 &mailbox0_cluster0 {
        mbox_m4_0: mbox-m4-0 {
                ti,mbox-rx = <0 0 0>;
                ti,mbox-tx = <1 0 0>;
        };
 };
+
+&ospi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&ospi0_pins_default>;
+
+       flash@0{
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+               spi-max-frequency = <25000000>;
+               cdns,tshsl-ns = <60>;
+               cdns,tsd2d-ns = <60>;
+               cdns,tchsh-ns = <60>;
+               cdns,tslch-ns = <60>;
+               cdns,read-delay = <4>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "ospi.tiboot3";
+                               reg = <0x0 0x80000>;
+                       };
+
+                       partition@80000 {
+                               label = "ospi.tispl";
+                               reg = <0x80000 0x200000>;
+                       };
+
+                       partition@280000 {
+                               label = "ospi.u-boot";
+                               reg = <0x280000 0x400000>;
+                       };
+
+                       partition@680000 {
+                               label = "ospi.env";
+                               reg = <0x680000 0x40000>;
+                       };
+
+                       partition@6c0000 {
+                               label = "ospi.env.backup";
+                               reg = <0x6c0000 0x40000>;
+                       };
+
+                       partition@800000 {
+                               label = "ospi.rootfs";
+                               reg = <0x800000 0x37c0000>;
+                       };
+
+                       partition@3fc0000 {
+                               label = "ospi.phypattern";
+                               reg = <0x3fc0000 0x40000>;
+                       };
+               };
+       };
+};
+
+&ecap0 {
+       status = "disabled";
+};
+
+&ecap1 {
+       status = "disabled";
+};
+
+&ecap2 {
+       status = "disabled";
+};
+
+&main_mcan0 {
+       status = "disabled";
+};
index 2bb5c9f..02d4285 100644 (file)
@@ -10,7 +10,6 @@
                compatible = "ti,am64-uart", "ti,am654-uart";
                reg = <0x00 0x04a00000 0x00 0x100>;
                interrupts = <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>;
-               clock-frequency = <48000000>;
                current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 149 0>;
@@ -21,7 +20,6 @@
                compatible = "ti,am64-uart", "ti,am654-uart";
                reg = <0x00 0x04a10000 0x00 0x100>;
                interrupts = <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>;
-               clock-frequency = <48000000>;
                current-speed = <115200>;
                power-domains = <&k3_pds 160 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 160 0>;
index 1d7db8b..59f506c 100644 (file)
                vin-supply = <&vcc_3v3_sys>;
                gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
        };
+
+       com8_ls_en: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "com8_ls_en";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+               pinctrl-0 = <&main_com8_ls_en_pins_default>;
+               pinctrl-names = "default";
+               gpio = <&main_gpio0 62 GPIO_ACTIVE_LOW>;
+       };
+
+       wlan_en: regulator-2 {
+               /* output of SN74AVC4T245RSVR */
+               compatible = "regulator-fixed";
+               regulator-name = "wlan_en";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               enable-active-high;
+               pinctrl-0 = <&main_wlan_en_pins_default>;
+               pinctrl-names = "default";
+               vin-supply = <&com8_ls_en>;
+               gpio = <&main_gpio0 48 GPIO_ACTIVE_HIGH>;
+       };
 };
 
 &main_pmx0 {
                        AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
                >;
        };
+       main_wlan_en_pins_default: main-wlan-en-pins-default {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x00c4, PIN_OUTPUT_PULLUP, 7) /* (V8) GPIO0_48 */
+               >;
+       };
+
+       main_com8_ls_en_pins_default: main-com8-ls-en-pins-default {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x00fc, PIN_OUTPUT, 7) /* (U7) PRG1_PRU0_GPO17.GPIO0_62 */
+               >;
+       };
+
+       main_wlan_pins_default: main-wlan-pins-default {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x00bc, PIN_INPUT, 7) /* (U8) GPIO0_46 */
+               >;
+       };
 };
 
 &mcu_uart0 {
        status = "reserved";
 };
 
+&sdhci0 {
+       vmmc-supply = <&wlan_en>;
+       bus-width = <4>;
+       non-removable;
+       cap-power-off-card;
+       keep-power-in-suspend;
+       ti,driver-strength-ohm = <50>;
+
+       #address-cells = <1>;
+       #size-cells = <0>;
+       wlcore: wlcore@2 {
+               compatible = "ti,wl1837";
+               reg = <2>;
+               pinctrl-0 = <&main_wlan_pins_default>;
+               pinctrl-names = "default";
+               interrupt-parent = <&main_gpio0>;
+               interrupts = <46 IRQ_TYPE_EDGE_FALLING>;
+       };
+};
+
 &sdhci1 {
        /* SD/MMC */
        vmmc-supply = <&vdd_mmc1>;
index f5ca8e2..2bc26a2 100644 (file)
                pinctrl-0 = <&main_mcan2_gpio_pins_default>;
                standby-gpios = <&main_gpio0 127 GPIO_ACTIVE_HIGH>;
        };
+
+       dp_pwr_3v3: regulator-dp-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "dp-pwr";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&exp4 0 GPIO_ACTIVE_HIGH>; /* P0 - DP0_PWR_SW_EN */
+               enable-active-high;
+       };
+
+       dp0: connector {
+               compatible = "dp-connector";
+               label = "DP0";
+               type = "full-size";
+               dp-pwr-supply = <&dp_pwr_3v3>;
+
+               port {
+                       dp_connector_in: endpoint {
+                               remote-endpoint = <&dp0_out>;
+                       };
+               };
+       };
 };
 
 &main_pmx0 {
                >;
        };
 
+       dp0_pins_default: dp0-pins-default {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x1c4, PIN_INPUT, 5) /* SPI0_CS1.DP0_HPD */
+               >;
+       };
+
        main_i2c1_exp4_pins_default: main-i2c1-exp4-pins-default {
                pinctrl-single,pins = <
                        J721E_IOPAD(0x230, PIN_INPUT, 7) /* (U2) ECAP0_IN_APWM_OUT.GPIO1_11 */
                                 <&k3_clks 152 18>;     /* PLL23_HSDIV0 */
 };
 
+&dss_ports {
+       port {
+               dpi0_out: endpoint {
+                       remote-endpoint = <&dp0_in>;
+               };
+       };
+};
+
+&dp0_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0 {
+               reg = <0>;
+               dp0_in: endpoint {
+                       remote-endpoint = <&dpi0_out>;
+               };
+       };
+
+       port@4 {
+               reg = <4>;
+               dp0_out: endpoint {
+                       remote-endpoint = <&dp_connector_in>;
+               };
+       };
+};
+
 &mcasp0 {
        status = "disabled";
 };
        };
 };
 
+&serdes4 {
+       torrent_phy_dp: phy@0 {
+               reg = <0>;
+               resets = <&serdes_wiz4 1>;
+               cdns,phy-type = <PHY_TYPE_DP>;
+               cdns,num-lanes = <4>;
+               cdns,max-bit-rate = <5400>;
+               #phy-cells = <0>;
+       };
+};
+
+&mhdp {
+       phys = <&torrent_phy_dp>;
+       phy-names = "dpphy";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp0_pins_default>;
+};
+
 &pcie0_rc {
        reset-gpios = <&exp1 6 GPIO_ACTIVE_HIGH>;
        phys = <&serdes0_pcie_link>;
        status = "disabled";
 };
 
-&dss {
-       status = "disabled";
-};
-
 &icssg0_mdio {
        status = "disabled";
 };
index db06699..43b6cf5 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (C) 2016-2020 Texas Instruments Incorporated - https://www.ti.com/
  */
 #include <dt-bindings/phy/phy.h>
+#include <dt-bindings/phy/phy-ti.h>
 #include <dt-bindings/mux/mux.h>
 #include <dt-bindings/mux/ti-serdes.h>
 
                #size-cells = <2>;
        };
 
+       serdes_wiz4: wiz@5050000 {
+               compatible = "ti,am64-wiz-10g";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               power-domains = <&k3_pds 297 TI_SCI_PD_EXCLUSIVE>;
+               clocks = <&k3_clks 297 1>, <&k3_clks 297 9>, <&cmn_refclk>;
+               clock-names = "fck", "core_ref_clk", "ext_ref_clk";
+               assigned-clocks = <&k3_clks 297 9>;
+               assigned-clock-parents = <&k3_clks 297 10>;
+               assigned-clock-rates = <19200000>;
+               num-lanes = <4>;
+               #reset-cells = <1>;
+               #clock-cells = <1>;
+               ranges = <0x05050000 0x00 0x05050000 0x010000>,
+                       <0x0a030a00 0x00 0x0a030a00 0x40>;
+
+               serdes4: serdes@5050000 {
+                       /*
+                        * Note: we also map DPTX PHY registers as the Torrent
+                        * needs to manage those.
+                        */
+                       compatible = "ti,j721e-serdes-10g";
+                       reg = <0x05050000 0x010000>,
+                             <0x0a030a00 0x40>; /* DPTX PHY */
+                       reg-names = "torrent_phy", "dptx_phy";
+
+                       resets = <&serdes_wiz4 0>;
+                       reset-names = "torrent_reset";
+                       clocks = <&serdes_wiz4 TI_WIZ_PLL0_REFCLK>;
+                       clock-names = "refclk";
+                       assigned-clocks = <&serdes_wiz4 TI_WIZ_PLL0_REFCLK>,
+                                         <&serdes_wiz4 TI_WIZ_PLL1_REFCLK>,
+                                         <&serdes_wiz4 TI_WIZ_REFCLK_DIG>;
+                       assigned-clock-parents = <&k3_clks 297 9>,
+                                                <&k3_clks 297 9>,
+                                                <&k3_clks 297 9>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
        main_uart0: serial@2800000 {
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02800000 0x00 0x100>;
                };
        };
 
+       mhdp: dp-bridge@a000000 {
+               compatible = "ti,j721e-mhdp8546";
+               /*
+                * Note: we do not map DPTX PHY area, as that is handled by
+                * the PHY driver.
+                */
+               reg = <0x00 0x0a000000 0x00 0x030a00>, /* DSS_EDP0_V2A_CORE_VP_REGS_APB */
+                     <0x00 0x04f40000 0x00 0x20>;    /* DSS_EDP0_INTG_CFG_VP */
+               reg-names = "mhdptx", "j721e-intg";
+
+               clocks = <&k3_clks 151 36>;
+
+               interrupt-parent = <&gic500>;
+               interrupts = <GIC_SPI 614 IRQ_TYPE_LEVEL_HIGH>;
+
+               power-domains = <&k3_pds 151 TI_SCI_PD_EXCLUSIVE>;
+
+               dp0_ports: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                           reg = <0>;
+                       };
+
+                       port@4 {
+                           reg = <4>;
+                       };
+               };
+       };
+
        dss: dss@4a00000 {
                compatible = "ti,j721e-dss";
                reg =
                                  "common_s2";
 
                dss_ports: ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
                };
        };
 
index f25d851..80358cb 100644 (file)
                enable-active-high;
        };
 
+       dp0: connector {
+               compatible = "dp-connector";
+               label = "DP0";
+               type = "full-size";
+               dp-pwr-supply = <&dp_pwr_3v3>;
+
+               port {
+                       dp_connector_in: endpoint {
+                               remote-endpoint = <&dp0_out>;
+                       };
+               };
+       };
+
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "hdmi";
+               type = "a";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_hpd_pins_default>;
+
+               ddc-i2c-bus = <&main_i2c1>;
+
+               /* HDMI_HPD */
+               hpd-gpios = <&main_gpio1 0 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
+
+       dvi-bridge {
+               compatible = "ti,tfp410";
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_pdn_pins_default>;
+
+               powerdown-gpios = <&main_gpio0 127 GPIO_ACTIVE_LOW>;
+               ti,deskew = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               tfp410_in: endpoint {
+                                       remote-endpoint = <&dpi1_out>;
+                                       pclk-sample = <1>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               tfp410_out: endpoint {
+                                       remote-endpoint =
+                                               <&hdmi_connector_in>;
+                               };
+                       };
+               };
+       };
 };
 
 &main_pmx0 {
                >;
        };
 
+       hdmi_hpd_pins_default: hdmi-hpd-pins-default {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x204, PIN_INPUT, 7) /* (AD5) UART1_RTSn.GPIO1_0 */
+               >;
+       };
+
+       hdmi_pdn_pins_default: hdmi-pdn-pins-default {
+               pinctrl-single,pins = <
+                       J721E_IOPAD(0x200, PIN_INPUT, 7) /* (AC4) UART1_CTSn.GPIO0_127 */
+               >;
+       };
+
        /* Reset for M.2 E Key slot on PCIe0  */
        ekey_reset_pins_default: ekey-reset-pns-pins-default {
                pinctrl-single,pins = <
        };
 };
 
+&serdes4 {
+       torrent_phy_dp: phy@0 {
+               reg = <0>;
+               resets = <&serdes_wiz4 1>;
+               cdns,phy-type = <PHY_TYPE_DP>;
+               cdns,num-lanes = <4>;
+               cdns,max-bit-rate = <5400>;
+               #phy-cells = <0>;
+       };
+};
+
+&mhdp {
+       phys = <&torrent_phy_dp>;
+       phy-names = "dpphy";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp0_pins_default>;
+};
+
 &usbss0 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_usbss0_pins_default>;
                                 <&k3_clks 152 18>;     /* DPI1_EXT_CLKSEL_OUT0 */
 };
 
+&dss_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0  {
+               reg = <0>;
+
+               dpi0_out: endpoint {
+                       remote-endpoint = <&dp0_in>;
+               };
+       };
+
+       port@1 {
+               reg = <1>;
+
+               dpi1_out: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+               };
+       };
+};
+
+&dp0_ports {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0 {
+               reg = <0>;
+               dp0_in: endpoint {
+                       remote-endpoint = <&dpi0_out>;
+               };
+       };
+
+       port@4 {
+               reg = <4>;
+               dp0_out: endpoint {
+                       remote-endpoint = <&dp_connector_in>;
+               };
+       };
+};
+
 &mcasp0 {
        /* Unused */
        status = "disabled";
        status = "disabled";
 };
 
-&dss {
-       status = "disabled";
-};
-
 &icssg0_mdio {
        status = "disabled";
 };
index 9375b0f..d209fdc 100644 (file)
 
 &uart0 {
        status = "okay";
-       clocks = <&uart_clk>;
-       clock-names = "apb_pclk";
 };
 
 &uart1 {
        status = "okay";
-       clocks = <&uart_clk>;
-       clock-names = "apb_pclk";
 };
 
 &piether {
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
-       clocks = <&clk300mhz>, <&clk125mhz>;
-       clock-names = "stmmaceth", "phy_ref_clk";
 
        mdio0 {
                #address-cells = <1>;
@@ -62,7 +56,6 @@
 
 &wdt {
        status = "okay";
-       clocks = <&wdt_clk>;
 };
 
 &gpio {
@@ -79,6 +72,4 @@
 
 &pcie {
        status = "okay";
-       clocks = <&extclk100mhz>, <&clk600mhz>, <&clk25mhz>;
-       clock-names = "ref", "core", "aux";
 };
index d081746..ed7aa7e 100644 (file)
 
 &uart0 {
        status = "okay";
-       clocks = <&uart_clk>;
-       clock-names = "apb_pclk";
 };
 
 &uart1 {
        status = "okay";
-       clocks = <&uart_clk>;
-       clock-names = "apb_pclk";
 };
 
 &piether {
        status = "okay";
        phy-handle = <&phy0>;
        phy-mode = "rgmii-id";
-       clocks = <&clk300mhz>, <&clk125mhz>;
-       clock-names = "stmmaceth", "phy_ref_clk";
 
        mdio0 {
                #address-cells = <1>;
index f0a93db..0c83210 100644 (file)
@@ -13,7 +13,6 @@
 
 &wdt {
        status = "okay";
-       clocks = <&wdt_clk>;
 };
 
 &gpio {
@@ -26,8 +25,6 @@
 
 &spi0 {
        status = "okay";
-       clocks = <&clk300mhz>, <&clk150mhz>;
-       clock-names = "sspclk", "apb_pclk";
 
        mmc-slot@0 {
                compatible = "mmc-spi-slot";
@@ -40,5 +37,4 @@
 
 &i2c0 {
        status = "okay";
-       clocks = <&clk150mhz>;
 };
index 01d7ee6..0fc32c0 100644 (file)
@@ -7,6 +7,7 @@
  *
  */
 
+#include <dt-bindings/clock/toshiba,tmpv770x.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 
                        <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
-       uart_clk: uart-clk {
-               compatible = "fixed-clock";
-               clock-frequency = <150000000>;
-               #clock-cells = <0>;
-       };
-
-       clk25mhz: clk25mhz {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <25000000>;
-               clock-output-names = "clk25mhz";
-       };
-
-       clk125mhz: clk125mhz {
-               compatible = "fixed-clock";
-               clock-frequency = <125000000>;
-               #clock-cells = <0>;
-               clock-output-names = "clk125mhz";
-       };
-
-       clk150mhz: clk150mhz {
-               compatible = "fixed-clock";
-               clock-frequency = <150000000>;
-               #clock-cells = <0>;
-               clock-output-names = "clk150mhz";
-       };
-
-       clk300mhz: clk300mhz {
-               compatible = "fixed-clock";
-               clock-frequency = <300000000>;
-               #clock-cells = <0>;
-               clock-output-names = "clk300mhz";
-       };
-
-       clk600mhz: clk600mhz {
-               compatible = "fixed-clock";
-               #clock-cells = <0>;
-               clock-frequency = <600000000>;
-               clock-output-names = "clk600mhz";
-       };
-
        extclk100mhz: extclk100mhz {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-output-names = "extclk100mhz";
        };
 
-       wdt_clk: wdt-clk {
+       osc2_clk: osc2-clk {
                compatible = "fixed-clock";
-               clock-frequency = <150000000>;
+               clock-frequency = <20000000>;
                #clock-cells = <0>;
        };
 
                        interrupt-parent = <&gic>;
                };
 
+               pipllct: clock-controller@24220000 {
+                       compatible = "toshiba,tmpv7708-pipllct";
+                       reg = <0 0x24220000 0 0x820>;
+                       #clock-cells = <1>;
+                       clocks = <&osc2_clk>;
+               };
+
+               pismu: syscon@24200000 {
+                       compatible = "toshiba,tmpv7708-pismu", "syscon";
+                       reg = <0 0x24200000 0 0x2140>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+               };
+
                uart0: serial@28200000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0 0x28200000 0 0x1000>;
                        interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart0_pins>;
+                       clocks = <&pismu TMPV770X_CLK_PIUART0>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart1_pins>;
+                       clocks = <&pismu TMPV770X_CLK_PIUART1>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart2_pins>;
+                       clocks = <&pismu TMPV770X_CLK_PIUART2>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&uart3_pins>;
+                       clocks = <&pismu TMPV770X_CLK_PIUART2>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C0>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C1>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C2>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C3>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C4>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C5>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C6>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C7>;
                        status = "disabled";
                };
 
                        clock-frequency = <400000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PII2C8>;
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI1>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI1>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI2>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI3>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI4>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI5>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        num-cs = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       clocks = <&pismu TMPV770X_CLK_PISPI6>;
+                       clock-names = "apb_pclk";
                        status = "disabled";
                };
 
                        snps,txpbl = <4>;
                        snps,rxpbl = <4>;
                        snps,tso;
+                       clocks = <&pismu TMPV770X_CLK_PIETHER_BUS>, <&pismu TMPV770X_CLK_PIETHER_125M>;
+                       clock-names = "stmmaceth", "phy_ref_clk";
                        status = "disabled";
                };
 
                wdt: wdt@28330000 {
                        compatible = "toshiba,visconti-wdt";
                        reg = <0 0x28330000 0 0x1000>;
+                       clocks = <&pismu TMPV770X_CLK_WDTCLK>;
                        status = "disabled";
                };
 
                                 0 0 0 3 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH
                                 0 0 0 4 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
                        max-link-speed = <2>;
+                       clocks = <&extclk100mhz>, <&pismu TMPV770X_CLK_PCIE_MSTR>, <&pismu TMPV770X_CLK_PCIE_AUX>;
+                       clock-names = "ref", "core", "aux";
                        status = "disabled";
                };
        };
index 72c99e4..1badb4f 100644 (file)
 #define UFS_UNIPRO_CORE_CLK_SRC                                        177
 #define GCC_MMSS_GPLL0_CLK                                     178
 #define HMSS_GPLL0_CLK_SRC                                     179
+#define GCC_IM_SLEEP                                           180
+#define AGGRE2_SNOC_NORTH_AXI                                  181
+#define SSC_XO                                                 182
+#define SSC_CNOC_AHBS_CLK                                      183
 
 #define PCIE_0_GDSC                                            0
 #define UFS_GDSC                                               1
diff --git a/include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h b/include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h
new file mode 100644 (file)
index 0000000..20ef2ea
--- /dev/null
@@ -0,0 +1,43 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_LPASS_AUDIO_CC_SC7280_H
+#define _DT_BINDINGS_CLK_QCOM_LPASS_AUDIO_CC_SC7280_H
+
+/* LPASS_AUDIO_CC clocks */
+#define LPASS_AUDIO_CC_PLL                             0
+#define LPASS_AUDIO_CC_PLL_OUT_AUX2                    1
+#define LPASS_AUDIO_CC_PLL_OUT_AUX2_DIV_CLK_SRC                2
+#define LPASS_AUDIO_CC_PLL_OUT_MAIN_DIV_CLK_SRC                3
+#define LPASS_AUDIO_CC_CDIV_RX_MCLK_DIV_CLK_SRC                4
+#define LPASS_AUDIO_CC_CODEC_MEM0_CLK                  5
+#define LPASS_AUDIO_CC_CODEC_MEM1_CLK                  6
+#define LPASS_AUDIO_CC_CODEC_MEM2_CLK                  7
+#define LPASS_AUDIO_CC_CODEC_MEM_CLK                   8
+#define LPASS_AUDIO_CC_EXT_MCLK0_CLK                   9
+#define LPASS_AUDIO_CC_EXT_MCLK0_CLK_SRC               10
+#define LPASS_AUDIO_CC_EXT_MCLK1_CLK                   11
+#define LPASS_AUDIO_CC_EXT_MCLK1_CLK_SRC               12
+#define LPASS_AUDIO_CC_RX_MCLK_2X_CLK                  13
+#define LPASS_AUDIO_CC_RX_MCLK_CLK                     14
+#define LPASS_AUDIO_CC_RX_MCLK_CLK_SRC                 15
+
+/* LPASS_AON_CC clocks */
+#define LPASS_AON_CC_PLL                               0
+#define LPASS_AON_CC_PLL_OUT_EVEN                      1
+#define LPASS_AON_CC_PLL_OUT_MAIN_CDIV_DIV_CLK_SRC     2
+#define LPASS_AON_CC_PLL_OUT_ODD                       3
+#define LPASS_AON_CC_AUDIO_HM_H_CLK                    4
+#define LPASS_AON_CC_CDIV_TX_MCLK_DIV_CLK_SRC          5
+#define LPASS_AON_CC_MAIN_RCG_CLK_SRC                  6
+#define LPASS_AON_CC_TX_MCLK_2X_CLK                    7
+#define LPASS_AON_CC_TX_MCLK_CLK                       8
+#define LPASS_AON_CC_TX_MCLK_RCG_CLK_SRC               9
+#define LPASS_AON_CC_VA_MEM0_CLK                       10
+
+/* LPASS_AON_CC power domains */
+#define LPASS_AON_CC_LPASS_AUDIO_HM_GDSC               0
+
+#endif
diff --git a/include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h b/include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h
new file mode 100644 (file)
index 0000000..28ed2a0
--- /dev/null
@@ -0,0 +1,26 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2021, The Linux Foundation. All rights reserved.
+ */
+
+#ifndef _DT_BINDINGS_CLK_QCOM_LPASS_CORE_CC_SC7280_H
+#define _DT_BINDINGS_CLK_QCOM_LPASS_CORE_CC_SC7280_H
+
+/* LPASS_CORE_CC clocks */
+#define LPASS_CORE_CC_DIG_PLL                          0
+#define LPASS_CORE_CC_DIG_PLL_OUT_MAIN_DIV_CLK_SRC     1
+#define LPASS_CORE_CC_DIG_PLL_OUT_ODD                  2
+#define LPASS_CORE_CC_CORE_CLK                         3
+#define LPASS_CORE_CC_CORE_CLK_SRC                     4
+#define LPASS_CORE_CC_EXT_IF0_CLK_SRC                  5
+#define LPASS_CORE_CC_EXT_IF0_IBIT_CLK                 6
+#define LPASS_CORE_CC_EXT_IF1_CLK_SRC                  7
+#define LPASS_CORE_CC_EXT_IF1_IBIT_CLK                 8
+#define LPASS_CORE_CC_LPM_CORE_CLK                     9
+#define LPASS_CORE_CC_LPM_MEM0_CORE_CLK                        10
+#define LPASS_CORE_CC_SYSNOC_MPORT_CORE_CLK            11
+
+/* LPASS_CORE_CC power domains */
+#define LPASS_CORE_CC_LPASS_CORE_HM_GDSC               0
+
+#endif
diff --git a/include/dt-bindings/clock/r8a779g0-cpg-mssr.h b/include/dt-bindings/clock/r8a779g0-cpg-mssr.h
new file mode 100644 (file)
index 0000000..754c54a
--- /dev/null
@@ -0,0 +1,90 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_CLOCK_R8A779G0_CPG_MSSR_H__
+#define __DT_BINDINGS_CLOCK_R8A779G0_CPG_MSSR_H__
+
+#include <dt-bindings/clock/renesas-cpg-mssr.h>
+
+/* r8a779g0 CPG Core Clocks */
+
+#define R8A779G0_CLK_ZX                        0
+#define R8A779G0_CLK_ZS                        1
+#define R8A779G0_CLK_ZT                        2
+#define R8A779G0_CLK_ZTR               3
+#define R8A779G0_CLK_S0D2              4
+#define R8A779G0_CLK_S0D3              5
+#define R8A779G0_CLK_S0D4              6
+#define R8A779G0_CLK_S0D1_VIO          7
+#define R8A779G0_CLK_S0D2_VIO          8
+#define R8A779G0_CLK_S0D4_VIO          9
+#define R8A779G0_CLK_S0D8_VIO          10
+#define R8A779G0_CLK_S0D1_VC           11
+#define R8A779G0_CLK_S0D2_VC           12
+#define R8A779G0_CLK_S0D4_VC           13
+#define R8A779G0_CLK_S0D2_MM           14
+#define R8A779G0_CLK_S0D4_MM           15
+#define R8A779G0_CLK_S0D2_U3DG         16
+#define R8A779G0_CLK_S0D4_U3DG         17
+#define R8A779G0_CLK_S0D2_RT           18
+#define R8A779G0_CLK_S0D3_RT           19
+#define R8A779G0_CLK_S0D4_RT           20
+#define R8A779G0_CLK_S0D6_RT           21
+#define R8A779G0_CLK_S0D24_RT          22
+#define R8A779G0_CLK_S0D2_PER          23
+#define R8A779G0_CLK_S0D3_PER          24
+#define R8A779G0_CLK_S0D4_PER          25
+#define R8A779G0_CLK_S0D6_PER          26
+#define R8A779G0_CLK_S0D12_PER         27
+#define R8A779G0_CLK_S0D24_PER         28
+#define R8A779G0_CLK_S0D1_HSC          29
+#define R8A779G0_CLK_S0D2_HSC          30
+#define R8A779G0_CLK_S0D4_HSC          31
+#define R8A779G0_CLK_S0D2_CC           32
+#define R8A779G0_CLK_SVD1_IR           33
+#define R8A779G0_CLK_SVD2_IR           34
+#define R8A779G0_CLK_SVD1_VIP          35
+#define R8A779G0_CLK_SVD2_VIP          36
+#define R8A779G0_CLK_CL                        37
+#define R8A779G0_CLK_CL16M             38
+#define R8A779G0_CLK_CL16M_MM          39
+#define R8A779G0_CLK_CL16M_RT          40
+#define R8A779G0_CLK_CL16M_PER         41
+#define R8A779G0_CLK_CL16M_HSC         42
+#define R8A779G0_CLK_Z0                        43
+#define R8A779G0_CLK_ZB3               44
+#define R8A779G0_CLK_ZB3D2             45
+#define R8A779G0_CLK_ZB3D4             46
+#define R8A779G0_CLK_ZG                        47
+#define R8A779G0_CLK_SD0H              48
+#define R8A779G0_CLK_SD0               49
+#define R8A779G0_CLK_RPC               50
+#define R8A779G0_CLK_RPCD2             51
+#define R8A779G0_CLK_MSO               52
+#define R8A779G0_CLK_CANFD             53
+#define R8A779G0_CLK_CSI               54
+#define R8A779G0_CLK_FRAY              55
+#define R8A779G0_CLK_IPC               56
+#define R8A779G0_CLK_SASYNCRT          57
+#define R8A779G0_CLK_SASYNCPERD1       58
+#define R8A779G0_CLK_SASYNCPERD2       59
+#define R8A779G0_CLK_SASYNCPERD4       60
+#define R8A779G0_CLK_VIOBUS            61
+#define R8A779G0_CLK_VIOBUSD2          62
+#define R8A779G0_CLK_VCBUS             63
+#define R8A779G0_CLK_VCBUSD2           64
+#define R8A779G0_CLK_DSIEXT            65
+#define R8A779G0_CLK_DSIREF            66
+#define R8A779G0_CLK_ADGH              67
+#define R8A779G0_CLK_OSC               68
+#define R8A779G0_CLK_ZR0               69
+#define R8A779G0_CLK_ZR1               70
+#define R8A779G0_CLK_ZR2               71
+#define R8A779G0_CLK_IMPA              72
+#define R8A779G0_CLK_IMPAD4            73
+#define R8A779G0_CLK_CPEX              74
+#define R8A779G0_CLK_CBFUSA            75
+#define R8A779G0_CLK_R                 76
+
+#endif /* __DT_BINDINGS_CLOCK_R8A779G0_CPG_MSSR_H__ */
diff --git a/include/dt-bindings/clock/r9a07g043-cpg.h b/include/dt-bindings/clock/r9a07g043-cpg.h
new file mode 100644 (file)
index 0000000..27e2327
--- /dev/null
@@ -0,0 +1,184 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_CLOCK_R9A07G043_CPG_H__
+#define __DT_BINDINGS_CLOCK_R9A07G043_CPG_H__
+
+#include <dt-bindings/clock/renesas-cpg-mssr.h>
+
+/* R9A07G043 CPG Core Clocks */
+#define R9A07G043_CLK_I                        0
+#define R9A07G043_CLK_I2               1
+#define R9A07G043_CLK_S0               2
+#define R9A07G043_CLK_SPI0             3
+#define R9A07G043_CLK_SPI1             4
+#define R9A07G043_CLK_SD0              5
+#define R9A07G043_CLK_SD1              6
+#define R9A07G043_CLK_M0               7
+#define R9A07G043_CLK_M2               8
+#define R9A07G043_CLK_M3               9
+#define R9A07G043_CLK_HP               10
+#define R9A07G043_CLK_TSU              11
+#define R9A07G043_CLK_ZT               12
+#define R9A07G043_CLK_P0               13
+#define R9A07G043_CLK_P1               14
+#define R9A07G043_CLK_P2               15
+#define R9A07G043_CLK_AT               16
+#define R9A07G043_OSCCLK               17
+#define R9A07G043_CLK_P0_DIV2          18
+
+/* R9A07G043 Module Clocks */
+#define R9A07G043_CA55_SCLK            0       /* RZ/G2UL Only */
+#define R9A07G043_CA55_PCLK            1       /* RZ/G2UL Only */
+#define R9A07G043_CA55_ATCLK           2       /* RZ/G2UL Only */
+#define R9A07G043_CA55_GICCLK          3       /* RZ/G2UL Only */
+#define R9A07G043_CA55_PERICLK         4       /* RZ/G2UL Only */
+#define R9A07G043_CA55_ACLK            5       /* RZ/G2UL Only */
+#define R9A07G043_CA55_TSCLK           6       /* RZ/G2UL Only */
+#define R9A07G043_GIC600_GICCLK                7       /* RZ/G2UL Only */
+#define R9A07G043_IA55_CLK             8       /* RZ/G2UL Only */
+#define R9A07G043_IA55_PCLK            9       /* RZ/G2UL Only */
+#define R9A07G043_MHU_PCLK             10      /* RZ/G2UL Only */
+#define R9A07G043_SYC_CNT_CLK          11
+#define R9A07G043_DMAC_ACLK            12
+#define R9A07G043_DMAC_PCLK            13
+#define R9A07G043_OSTM0_PCLK           14
+#define R9A07G043_OSTM1_PCLK           15
+#define R9A07G043_OSTM2_PCLK           16
+#define R9A07G043_MTU_X_MCK_MTU3       17
+#define R9A07G043_POE3_CLKM_POE                18
+#define R9A07G043_WDT0_PCLK            19
+#define R9A07G043_WDT0_CLK             20
+#define R9A07G043_WDT2_PCLK            21      /* RZ/G2UL Only */
+#define R9A07G043_WDT2_CLK             22      /* RZ/G2UL Only */
+#define R9A07G043_SPI_CLK2             23
+#define R9A07G043_SPI_CLK              24
+#define R9A07G043_SDHI0_IMCLK          25
+#define R9A07G043_SDHI0_IMCLK2         26
+#define R9A07G043_SDHI0_CLK_HS         27
+#define R9A07G043_SDHI0_ACLK           28
+#define R9A07G043_SDHI1_IMCLK          29
+#define R9A07G043_SDHI1_IMCLK2         30
+#define R9A07G043_SDHI1_CLK_HS         31
+#define R9A07G043_SDHI1_ACLK           32
+#define R9A07G043_ISU_ACLK             33      /* RZ/G2UL Only */
+#define R9A07G043_ISU_PCLK             34      /* RZ/G2UL Only */
+#define R9A07G043_CRU_SYSCLK           35      /* RZ/G2UL Only */
+#define R9A07G043_CRU_VCLK             36      /* RZ/G2UL Only */
+#define R9A07G043_CRU_PCLK             37      /* RZ/G2UL Only */
+#define R9A07G043_CRU_ACLK             38      /* RZ/G2UL Only */
+#define R9A07G043_LCDC_CLK_A           39      /* RZ/G2UL Only */
+#define R9A07G043_LCDC_CLK_P           40      /* RZ/G2UL Only */
+#define R9A07G043_LCDC_CLK_D           41      /* RZ/G2UL Only */
+#define R9A07G043_SSI0_PCLK2           42
+#define R9A07G043_SSI0_PCLK_SFR                43
+#define R9A07G043_SSI1_PCLK2           44
+#define R9A07G043_SSI1_PCLK_SFR                45
+#define R9A07G043_SSI2_PCLK2           46
+#define R9A07G043_SSI2_PCLK_SFR                47
+#define R9A07G043_SSI3_PCLK2           48
+#define R9A07G043_SSI3_PCLK_SFR                49
+#define R9A07G043_SRC_CLKP             50      /* RZ/G2UL Only */
+#define R9A07G043_USB_U2H0_HCLK                51
+#define R9A07G043_USB_U2H1_HCLK                52
+#define R9A07G043_USB_U2P_EXR_CPUCLK   53
+#define R9A07G043_USB_PCLK             54
+#define R9A07G043_ETH0_CLK_AXI         55
+#define R9A07G043_ETH0_CLK_CHI         56
+#define R9A07G043_ETH1_CLK_AXI         57
+#define R9A07G043_ETH1_CLK_CHI         58
+#define R9A07G043_I2C0_PCLK            59
+#define R9A07G043_I2C1_PCLK            60
+#define R9A07G043_I2C2_PCLK            61
+#define R9A07G043_I2C3_PCLK            62
+#define R9A07G043_SCIF0_CLK_PCK                63
+#define R9A07G043_SCIF1_CLK_PCK                64
+#define R9A07G043_SCIF2_CLK_PCK                65
+#define R9A07G043_SCIF3_CLK_PCK                66
+#define R9A07G043_SCIF4_CLK_PCK                67
+#define R9A07G043_SCI0_CLKP            68
+#define R9A07G043_SCI1_CLKP            69
+#define R9A07G043_IRDA_CLKP            70
+#define R9A07G043_RSPI0_CLKB           71
+#define R9A07G043_RSPI1_CLKB           72
+#define R9A07G043_RSPI2_CLKB           73
+#define R9A07G043_CANFD_PCLK           74
+#define R9A07G043_GPIO_HCLK            75
+#define R9A07G043_ADC_ADCLK            76
+#define R9A07G043_ADC_PCLK             77
+#define R9A07G043_TSU_PCLK             78
+
+/* R9A07G043 Resets */
+#define R9A07G043_CA55_RST_1_0         0       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_1_1         1       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_3_0         2       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_3_1         3       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_4           4       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_5           5       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_6           6       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_7           7       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_8           8       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_9           9       /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_10          10      /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_11          11      /* RZ/G2UL Only */
+#define R9A07G043_CA55_RST_12          12      /* RZ/G2UL Only */
+#define R9A07G043_GIC600_GICRESET_N    13      /* RZ/G2UL Only */
+#define R9A07G043_GIC600_DBG_GICRESET_N        14      /* RZ/G2UL Only */
+#define R9A07G043_IA55_RESETN          15      /* RZ/G2UL Only */
+#define R9A07G043_MHU_RESETN           16      /* RZ/G2UL Only */
+#define R9A07G043_DMAC_ARESETN         17
+#define R9A07G043_DMAC_RST_ASYNC       18
+#define R9A07G043_SYC_RESETN           19
+#define R9A07G043_OSTM0_PRESETZ                20
+#define R9A07G043_OSTM1_PRESETZ                21
+#define R9A07G043_OSTM2_PRESETZ                22
+#define R9A07G043_MTU_X_PRESET_MTU3    23
+#define R9A07G043_POE3_RST_M_REG       24
+#define R9A07G043_WDT0_PRESETN         25
+#define R9A07G043_WDT2_PRESETN         26      /* RZ/G2UL Only */
+#define R9A07G043_SPI_RST              27
+#define R9A07G043_SDHI0_IXRST          28
+#define R9A07G043_SDHI1_IXRST          29
+#define R9A07G043_ISU_ARESETN          30      /* RZ/G2UL Only */
+#define R9A07G043_ISU_PRESETN          31      /* RZ/G2UL Only */
+#define R9A07G043_CRU_CMN_RSTB         32      /* RZ/G2UL Only */
+#define R9A07G043_CRU_PRESETN          33      /* RZ/G2UL Only */
+#define R9A07G043_CRU_ARESETN          34      /* RZ/G2UL Only */
+#define R9A07G043_LCDC_RESET_N         35      /* RZ/G2UL Only */
+#define R9A07G043_SSI0_RST_M2_REG      36
+#define R9A07G043_SSI1_RST_M2_REG      37
+#define R9A07G043_SSI2_RST_M2_REG      38
+#define R9A07G043_SSI3_RST_M2_REG      39
+#define R9A07G043_SRC_RST              40      /* RZ/G2UL Only */
+#define R9A07G043_USB_U2H0_HRESETN     41
+#define R9A07G043_USB_U2H1_HRESETN     42
+#define R9A07G043_USB_U2P_EXL_SYSRST   43
+#define R9A07G043_USB_PRESETN          44
+#define R9A07G043_ETH0_RST_HW_N                45
+#define R9A07G043_ETH1_RST_HW_N                46
+#define R9A07G043_I2C0_MRST            47
+#define R9A07G043_I2C1_MRST            48
+#define R9A07G043_I2C2_MRST            49
+#define R9A07G043_I2C3_MRST            50
+#define R9A07G043_SCIF0_RST_SYSTEM_N   51
+#define R9A07G043_SCIF1_RST_SYSTEM_N   52
+#define R9A07G043_SCIF2_RST_SYSTEM_N   53
+#define R9A07G043_SCIF3_RST_SYSTEM_N   54
+#define R9A07G043_SCIF4_RST_SYSTEM_N   55
+#define R9A07G043_SCI0_RST             56
+#define R9A07G043_SCI1_RST             57
+#define R9A07G043_IRDA_RST             58
+#define R9A07G043_RSPI0_RST            59
+#define R9A07G043_RSPI1_RST            60
+#define R9A07G043_RSPI2_RST            61
+#define R9A07G043_CANFD_RSTP_N         62
+#define R9A07G043_CANFD_RSTC_N         63
+#define R9A07G043_GPIO_RSTN            64
+#define R9A07G043_GPIO_PORT_RESETN     65
+#define R9A07G043_GPIO_SPARE_RESETN    66
+#define R9A07G043_ADC_PRESETN          67
+#define R9A07G043_ADC_ADRST_N          68
+#define R9A07G043_TSU_PRESETN          69
+
+#endif /* __DT_BINDINGS_CLOCK_R9A07G043_CPG_H__ */
diff --git a/include/dt-bindings/clock/r9a09g011-cpg.h b/include/dt-bindings/clock/r9a09g011-cpg.h
new file mode 100644 (file)
index 0000000..41dd585
--- /dev/null
@@ -0,0 +1,352 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+ *
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_CLOCK_R9A09G011_CPG_H__
+#define __DT_BINDINGS_CLOCK_R9A09G011_CPG_H__
+
+#include <dt-bindings/clock/renesas-cpg-mssr.h>
+
+/* Module Clocks */
+#define R9A09G011_SYS_CLK              0
+#define R9A09G011_PFC_PCLK             1
+#define R9A09G011_PMC_CORE_CLOCK       2
+#define R9A09G011_GIC_CLK              3
+#define R9A09G011_RAMA_ACLK            4
+#define R9A09G011_ROMA_ACLK            5
+#define R9A09G011_SEC_ACLK             6
+#define R9A09G011_SEC_PCLK             7
+#define R9A09G011_SEC_TCLK             8
+#define R9A09G011_DMAA_ACLK            9
+#define R9A09G011_TSU0_PCLK            10
+#define R9A09G011_TSU1_PCLK            11
+
+#define R9A09G011_CST_TRACECLK         12
+#define R9A09G011_CST_SB_CLK           13
+#define R9A09G011_CST_AHB_CLK          14
+#define R9A09G011_CST_ATB_SB_CLK       15
+#define R9A09G011_CST_TS_SB_CLK                16
+
+#define R9A09G011_SDI0_ACLK            17
+#define R9A09G011_SDI0_IMCLK           18
+#define R9A09G011_SDI0_IMCLK2          19
+#define R9A09G011_SDI0_CLK_HS          20
+#define R9A09G011_SDI1_ACLK            21
+#define R9A09G011_SDI1_IMCLK           22
+#define R9A09G011_SDI1_IMCLK2          23
+#define R9A09G011_SDI1_CLK_HS          24
+#define R9A09G011_EMM_ACLK             25
+#define R9A09G011_EMM_IMCLK            26
+#define R9A09G011_EMM_IMCLK2           27
+#define R9A09G011_EMM_CLK_HS           28
+#define R9A09G011_NFI_ACLK             29
+#define R9A09G011_NFI_NF_CLK           30
+
+#define R9A09G011_PCI_ACLK             31
+#define R9A09G011_PCI_CLK_PMU          32
+#define R9A09G011_PCI_APB_CLK          33
+#define R9A09G011_USB_ACLK_H           34
+#define R9A09G011_USB_ACLK_P           35
+#define R9A09G011_USB_PCLK             36
+#define R9A09G011_ETH0_CLK_AXI         37
+#define R9A09G011_ETH0_CLK_CHI         38
+#define R9A09G011_ETH0_GPTP_EXT                39
+
+#define R9A09G011_SDT_CLK              40
+#define R9A09G011_SDT_CLKAPB           41
+#define R9A09G011_SDT_CLK48            42
+#define R9A09G011_GRP_CLK              43
+#define R9A09G011_CIF_P0_CLK           44
+#define R9A09G011_CIF_P1_CLK           45
+#define R9A09G011_CIF_APB_CLK          46
+#define R9A09G011_DCI_CLKAXI           47
+#define R9A09G011_DCI_CLKAPB           48
+#define R9A09G011_DCI_CLKDCI2          49
+
+#define R9A09G011_HMI_PCLK             50
+#define R9A09G011_LCI_PCLK             51
+#define R9A09G011_LCI_ACLK             52
+#define R9A09G011_LCI_VCLK             53
+#define R9A09G011_LCI_LPCLK            54
+
+#define R9A09G011_AUI_CLK              55
+#define R9A09G011_AUI_CLKAXI           56
+#define R9A09G011_AUI_CLKAPB           57
+#define R9A09G011_AUMCLK               58
+#define R9A09G011_GMCLK0               59
+#define R9A09G011_GMCLK1               60
+#define R9A09G011_MTR_CLK0             61
+#define R9A09G011_MTR_CLK1             62
+#define R9A09G011_MTR_CLKAPB           63
+#define R9A09G011_GFT_CLK              64
+#define R9A09G011_GFT_CLKAPB           65
+#define R9A09G011_GFT_MCLK             66
+
+#define R9A09G011_ATGA_CLK             67
+#define R9A09G011_ATGA_CLKAPB          68
+#define R9A09G011_ATGB_CLK             69
+#define R9A09G011_ATGB_CLKAPB          70
+#define R9A09G011_SYC_CNT_CLK          71
+
+#define R9A09G011_CPERI_GRPA_PCLK      72
+#define R9A09G011_TIM0_CLK             73
+#define R9A09G011_TIM1_CLK             74
+#define R9A09G011_TIM2_CLK             75
+#define R9A09G011_TIM3_CLK             76
+#define R9A09G011_TIM4_CLK             77
+#define R9A09G011_TIM5_CLK             78
+#define R9A09G011_TIM6_CLK             79
+#define R9A09G011_TIM7_CLK             80
+#define R9A09G011_IIC_PCLK0            81
+
+#define R9A09G011_CPERI_GRPB_PCLK      82
+#define R9A09G011_TIM8_CLK             83
+#define R9A09G011_TIM9_CLK             84
+#define R9A09G011_TIM10_CLK            85
+#define R9A09G011_TIM11_CLK            86
+#define R9A09G011_TIM12_CLK            87
+#define R9A09G011_TIM13_CLK            88
+#define R9A09G011_TIM14_CLK            89
+#define R9A09G011_TIM15_CLK            90
+#define R9A09G011_IIC_PCLK1            91
+
+#define R9A09G011_CPERI_GRPC_PCLK      92
+#define R9A09G011_TIM16_CLK            93
+#define R9A09G011_TIM17_CLK            94
+#define R9A09G011_TIM18_CLK            95
+#define R9A09G011_TIM19_CLK            96
+#define R9A09G011_TIM20_CLK            97
+#define R9A09G011_TIM21_CLK            98
+#define R9A09G011_TIM22_CLK            99
+#define R9A09G011_TIM23_CLK            100
+#define R9A09G011_WDT0_PCLK            101
+#define R9A09G011_WDT0_CLK             102
+#define R9A09G011_WDT1_PCLK            103
+#define R9A09G011_WDT1_CLK             104
+
+#define R9A09G011_CPERI_GRPD_PCLK      105
+#define R9A09G011_TIM24_CLK            106
+#define R9A09G011_TIM25_CLK            107
+#define R9A09G011_TIM26_CLK            108
+#define R9A09G011_TIM27_CLK            109
+#define R9A09G011_TIM28_CLK            110
+#define R9A09G011_TIM29_CLK            111
+#define R9A09G011_TIM30_CLK            112
+#define R9A09G011_TIM31_CLK            113
+
+#define R9A09G011_CPERI_GRPE_PCLK      114
+#define R9A09G011_PWM0_CLK             115
+#define R9A09G011_PWM1_CLK             116
+#define R9A09G011_PWM2_CLK             117
+#define R9A09G011_PWM3_CLK             118
+#define R9A09G011_PWM4_CLK             119
+#define R9A09G011_PWM5_CLK             120
+#define R9A09G011_PWM6_CLK             121
+#define R9A09G011_PWM7_CLK             122
+
+#define R9A09G011_CPERI_GRPF_PCLK      123
+#define R9A09G011_PWM8_CLK             124
+#define R9A09G011_PWM9_CLK             125
+#define R9A09G011_PWM10_CLK            126
+#define R9A09G011_PWM11_CLK            127
+#define R9A09G011_PWM12_CLK            128
+#define R9A09G011_PWM13_CLK            129
+#define R9A09G011_PWM14_CLK            130
+#define R9A09G011_PWM15_CLK            131
+
+#define R9A09G011_CPERI_GRPG_PCLK      132
+#define R9A09G011_CPERI_GRPH_PCLK      133
+#define R9A09G011_URT_PCLK             134
+#define R9A09G011_URT0_CLK             135
+#define R9A09G011_URT1_CLK             136
+#define R9A09G011_CSI0_CLK             137
+#define R9A09G011_CSI1_CLK             138
+#define R9A09G011_CSI2_CLK             139
+#define R9A09G011_CSI3_CLK             140
+#define R9A09G011_CSI4_CLK             141
+#define R9A09G011_CSI5_CLK             142
+
+#define R9A09G011_ICB_ACLK1            143
+#define R9A09G011_ICB_GIC_CLK          144
+#define R9A09G011_ICB_MPCLK1           145
+#define R9A09G011_ICB_SPCLK1           146
+#define R9A09G011_ICB_CLK48            147
+#define R9A09G011_ICB_CLK48_2          148
+#define R9A09G011_ICB_CLK48_3          149
+#define R9A09G011_ICB_CLK48_4L         150
+#define R9A09G011_ICB_CLK48_4R         151
+#define R9A09G011_ICB_CLK48_5          152
+#define R9A09G011_ICB_CST_ATB_SB_CLK   153
+#define R9A09G011_ICB_CST_CS_CLK       154
+#define R9A09G011_ICB_CLK100_1         155
+#define R9A09G011_ICB_ETH0_CLK_AXI     156
+#define R9A09G011_ICB_DCI_CLKAXI       157
+#define R9A09G011_ICB_SYC_CNT_CLK      158
+
+#define R9A09G011_ICB_DRPA_ACLK                159
+#define R9A09G011_ICB_RFX_ACLK         160
+#define R9A09G011_ICB_RFX_PCLK5                161
+#define R9A09G011_ICB_MMC_ACLK         162
+
+#define R9A09G011_ICB_MPCLK3           163
+#define R9A09G011_ICB_CIMA_CLK         164
+#define R9A09G011_ICB_CIMB_CLK         165
+#define R9A09G011_ICB_BIMA_CLK         166
+#define R9A09G011_ICB_FCD_CLKAXI       167
+#define R9A09G011_ICB_VD_ACLK4         168
+#define R9A09G011_ICB_MPCLK4           169
+#define R9A09G011_ICB_VCD_PCLK4                170
+
+#define R9A09G011_CA53_CLK             171
+#define R9A09G011_CA53_ACLK            172
+#define R9A09G011_CA53_APCLK_DBG       173
+#define R9A09G011_CST_APB_CA53_CLK     174
+#define R9A09G011_CA53_ATCLK           175
+#define R9A09G011_CST_CS_CLK           176
+#define R9A09G011_CA53_TSCLK           177
+#define R9A09G011_CST_TS_CLK           178
+#define R9A09G011_CA53_APCLK_REG       179
+
+#define R9A09G011_DRPA_ACLK            180
+#define R9A09G011_DRPA_DCLK            181
+#define R9A09G011_DRPA_INITCLK         182
+
+#define R9A09G011_RAMB0_ACLK           183
+#define R9A09G011_RAMB1_ACLK           184
+#define R9A09G011_RAMB2_ACLK           185
+#define R9A09G011_RAMB3_ACLK           186
+
+#define R9A09G011_CIMA_CLKAPB          187
+#define R9A09G011_CIMA_CLK             188
+#define R9A09G011_CIMB_CLK             189
+#define R9A09G011_FAFA_CLK             190
+#define R9A09G011_STG_CLKAXI           191
+#define R9A09G011_STG_CLK0             192
+
+#define R9A09G011_BIMA_CLKAPB          193
+#define R9A09G011_BIMA_CLK             194
+#define R9A09G011_FAFB_CLK             195
+#define R9A09G011_FCD_CLK              196
+#define R9A09G011_FCD_CLKAXI           197
+
+#define R9A09G011_RIM_CLK              198
+#define R9A09G011_VCD_ACLK             199
+#define R9A09G011_VCD_PCLK             200
+#define R9A09G011_JPG0_CLK             201
+#define R9A09G011_JPG0_ACLK            202
+
+#define R9A09G011_MMC_CORE_DDRC_CLK    203
+#define R9A09G011_MMC_ACLK             204
+#define R9A09G011_MMC_PCLK             205
+#define R9A09G011_DDI_APBCLK           206
+
+/* Resets */
+#define R9A09G011_SYS_RST_N            0
+#define R9A09G011_PFC_PRESETN          1
+#define R9A09G011_RAMA_ARESETN         2
+#define R9A09G011_ROM_ARESETN          3
+#define R9A09G011_DMAA_ARESETN         4
+#define R9A09G011_SEC_ARESETN          5
+#define R9A09G011_SEC_PRESETN          6
+#define R9A09G011_SEC_RSTB             7
+#define R9A09G011_TSU0_RESETN          8
+#define R9A09G011_TSU1_RESETN          9
+#define R9A09G011_PMC_RESET_N          10
+
+#define R9A09G011_CST_NTRST            11
+#define R9A09G011_CST_NPOTRST          12
+#define R9A09G011_CST_NTRST2           13
+#define R9A09G011_CST_CS_RESETN                14
+#define R9A09G011_CST_TS_RESETN                15
+#define R9A09G011_CST_TRESETN          16
+#define R9A09G011_CST_SB_RESETN                17
+#define R9A09G011_CST_AHB_RESETN       18
+#define R9A09G011_CST_TS_SB_RESETN     19
+#define R9A09G011_CST_APB_CA53_RESETN  20
+#define R9A09G011_CST_ATB_SB_RESETN    21
+
+#define R9A09G011_SDI0_IXRST           22
+#define R9A09G011_SDI1_IXRST           23
+#define R9A09G011_EMM_IXRST            24
+#define R9A09G011_NFI_MARESETN         25
+#define R9A09G011_NFI_REG_RST_N                26
+#define R9A09G011_USB_PRESET_N         27
+#define R9A09G011_USB_DRD_RESET                28
+#define R9A09G011_USB_ARESETN_P                29
+#define R9A09G011_USB_ARESETN_H                30
+#define R9A09G011_ETH0_RST_HW_N                31
+#define R9A09G011_PCI_ARESETN          32
+
+#define R9A09G011_SDT_RSTSYSAX         33
+#define R9A09G011_GRP_RESETN           34
+#define R9A09G011_CIF_RST_N            35
+#define R9A09G011_DCU_RSTSYSAX         36
+#define R9A09G011_HMI_RST_N            37
+#define R9A09G011_HMI_PRESETN          38
+#define R9A09G011_LCI_PRESETN          39
+#define R9A09G011_LCI_ARESETN          40
+
+#define R9A09G011_AUI_RSTSYSAX         41
+#define R9A09G011_MTR_RSTSYSAX         42
+#define R9A09G011_GFT_RSTSYSAX         43
+#define R9A09G011_ATGA_RSTSYSAX                44
+#define R9A09G011_ATGB_RSTSYSAX                45
+#define R9A09G011_SYC_RST_N            46
+
+#define R9A09G011_TIM_GPA_PRESETN      47
+#define R9A09G011_TIM_GPB_PRESETN      48
+#define R9A09G011_TIM_GPC_PRESETN      49
+#define R9A09G011_TIM_GPD_PRESETN      50
+#define R9A09G011_PWM_GPE_PRESETN      51
+#define R9A09G011_PWM_GPF_PRESETN      52
+#define R9A09G011_CSI_GPG_PRESETN      53
+#define R9A09G011_CSI_GPH_PRESETN      54
+#define R9A09G011_IIC_GPA_PRESETN      55
+#define R9A09G011_IIC_GPB_PRESETN      56
+#define R9A09G011_URT_PRESETN          57
+#define R9A09G011_WDT0_PRESETN         58
+#define R9A09G011_WDT1_PRESETN         59
+
+#define R9A09G011_ICB_PD_AWO_RST_N     60
+#define R9A09G011_ICB_PD_MMC_RST_N     61
+#define R9A09G011_ICB_PD_VD0_RST_N     62
+#define R9A09G011_ICB_PD_VD1_RST_N     63
+#define R9A09G011_ICB_PD_RFX_RST_N     64
+
+#define R9A09G011_CA53_NCPUPORESET0    65
+#define R9A09G011_CA53_NCPUPORESET1    66
+#define R9A09G011_CA53_NCORERESET0     67
+#define R9A09G011_CA53_NCORERESET1     68
+#define R9A09G011_CA53_NPRESETDBG      69
+#define R9A09G011_CA53_L2RESET         70
+#define R9A09G011_CA53_NMISCRESET_HM   71
+#define R9A09G011_CA53_NMISCRESET_SM   72
+#define R9A09G011_CA53_NARESET         73
+
+#define R9A09G011_DRPA_ARESETN         74
+
+#define R9A09G011_RAMB0_ARESETN                75
+#define R9A09G011_RAMB1_ARESETN                76
+#define R9A09G011_RAMB2_ARESETN                77
+#define R9A09G011_RAMB3_ARESETN                78
+
+#define R9A09G011_CIMA_RSTSYSAX                79
+#define R9A09G011_CIMB_RSTSYSAX                80
+#define R9A09G011_FAFA_RSTSYSAX                81
+#define R9A09G011_STG_RSTSYSAX         82
+
+#define R9A09G011_BIMA_RSTSYSAX                83
+#define R9A09G011_FAFB_RSTSYSAX                84
+#define R9A09G011_FCD_RSTSYSAX         85
+#define R9A09G011_RIM_RSTSYSAX         86
+#define R9A09G011_VCD_RESETN           87
+#define R9A09G011_JPG_XRESET           88
+
+#define R9A09G011_MMC_CORE_DDRC_RSTN   89
+#define R9A09G011_MMC_ARESETN_N                90
+#define R9A09G011_MMC_PRESETN          91
+#define R9A09G011_DDI_PWROK            92
+#define R9A09G011_DDI_RESET            93
+#define R9A09G011_DDI_RESETN_APB       94
+
+#endif /* __DT_BINDINGS_CLOCK_R9A09G011_CPG_H__ */
diff --git a/include/dt-bindings/clock/samsung,exynosautov9.h b/include/dt-bindings/clock/samsung,exynosautov9.h
new file mode 100644 (file)
index 0000000..71ec0a9
--- /dev/null
@@ -0,0 +1,299 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Author: Chanho Park <chanho61.park@samsung.com>
+ *
+ * Device Tree binding constants for Exynos Auto V9 clock controller.
+ */
+
+#ifndef _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H
+#define _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H
+
+/* CMU_TOP */
+#define FOUT_SHARED0_PLL               1
+#define FOUT_SHARED1_PLL               2
+#define FOUT_SHARED2_PLL               3
+#define FOUT_SHARED3_PLL               4
+#define FOUT_SHARED4_PLL               5
+
+/* MUX in CMU_TOP */
+#define MOUT_SHARED0_PLL               6
+#define MOUT_SHARED1_PLL               7
+#define MOUT_SHARED2_PLL               8
+#define MOUT_SHARED3_PLL               9
+#define MOUT_SHARED4_PLL               10
+#define MOUT_CLKCMU_CMU_BOOST          11
+#define MOUT_CLKCMU_CMU_CMUREF         12
+#define MOUT_CLKCMU_ACC_BUS            13
+#define MOUT_CLKCMU_APM_BUS            14
+#define MOUT_CLKCMU_AUD_CPU            15
+#define MOUT_CLKCMU_AUD_BUS            16
+#define MOUT_CLKCMU_BUSC_BUS           17
+#define MOUT_CLKCMU_BUSMC_BUS          19
+#define MOUT_CLKCMU_CORE_BUS           20
+#define MOUT_CLKCMU_CPUCL0_SWITCH      21
+#define MOUT_CLKCMU_CPUCL0_CLUSTER     22
+#define MOUT_CLKCMU_CPUCL1_SWITCH      24
+#define MOUT_CLKCMU_CPUCL1_CLUSTER     25
+#define MOUT_CLKCMU_DPTX_BUS           26
+#define MOUT_CLKCMU_DPTX_DPGTC         27
+#define MOUT_CLKCMU_DPUM_BUS           28
+#define MOUT_CLKCMU_DPUS0_BUS          29
+#define MOUT_CLKCMU_DPUS1_BUS          30
+#define MOUT_CLKCMU_FSYS0_BUS          31
+#define MOUT_CLKCMU_FSYS0_PCIE         32
+#define MOUT_CLKCMU_FSYS1_BUS          33
+#define MOUT_CLKCMU_FSYS1_USBDRD       34
+#define MOUT_CLKCMU_FSYS1_MMC_CARD     35
+#define MOUT_CLKCMU_FSYS2_BUS          36
+#define MOUT_CLKCMU_FSYS2_UFS_EMBD     37
+#define MOUT_CLKCMU_FSYS2_ETHERNET     38
+#define MOUT_CLKCMU_G2D_G2D            39
+#define MOUT_CLKCMU_G2D_MSCL           40
+#define MOUT_CLKCMU_G3D00_SWITCH       41
+#define MOUT_CLKCMU_G3D01_SWITCH       42
+#define MOUT_CLKCMU_G3D1_SWITCH                43
+#define MOUT_CLKCMU_ISPB_BUS           44
+#define MOUT_CLKCMU_MFC_MFC            45
+#define MOUT_CLKCMU_MFC_WFD            46
+#define MOUT_CLKCMU_MIF_SWITCH         47
+#define MOUT_CLKCMU_MIF_BUSP           48
+#define MOUT_CLKCMU_NPU_BUS            49
+#define MOUT_CLKCMU_PERIC0_BUS         50
+#define MOUT_CLKCMU_PERIC0_IP          51
+#define MOUT_CLKCMU_PERIC1_BUS         52
+#define MOUT_CLKCMU_PERIC1_IP          53
+#define MOUT_CLKCMU_PERIS_BUS          54
+
+/* DIV in CMU_TOP */
+#define DOUT_SHARED0_DIV3              101
+#define DOUT_SHARED0_DIV2              102
+#define DOUT_SHARED1_DIV3              103
+#define DOUT_SHARED1_DIV2              104
+#define DOUT_SHARED1_DIV4              105
+#define DOUT_SHARED2_DIV3              106
+#define DOUT_SHARED2_DIV2              107
+#define DOUT_SHARED2_DIV4              108
+#define DOUT_SHARED4_DIV2              109
+#define DOUT_SHARED4_DIV4              110
+#define DOUT_CLKCMU_CMU_BOOST          111
+#define DOUT_CLKCMU_ACC_BUS            112
+#define DOUT_CLKCMU_APM_BUS            113
+#define DOUT_CLKCMU_AUD_CPU            114
+#define DOUT_CLKCMU_AUD_BUS            115
+#define DOUT_CLKCMU_BUSC_BUS           116
+#define DOUT_CLKCMU_BUSMC_BUS          118
+#define DOUT_CLKCMU_CORE_BUS           119
+#define DOUT_CLKCMU_CPUCL0_SWITCH      120
+#define DOUT_CLKCMU_CPUCL0_CLUSTER     121
+#define DOUT_CLKCMU_CPUCL1_SWITCH      123
+#define DOUT_CLKCMU_CPUCL1_CLUSTER     124
+#define DOUT_CLKCMU_DPTX_BUS           125
+#define DOUT_CLKCMU_DPTX_DPGTC         126
+#define DOUT_CLKCMU_DPUM_BUS           127
+#define DOUT_CLKCMU_DPUS0_BUS          128
+#define DOUT_CLKCMU_DPUS1_BUS          129
+#define DOUT_CLKCMU_FSYS0_BUS          130
+#define DOUT_CLKCMU_FSYS0_PCIE         131
+#define DOUT_CLKCMU_FSYS1_BUS          132
+#define DOUT_CLKCMU_FSYS1_USBDRD       133
+#define DOUT_CLKCMU_FSYS2_BUS          134
+#define DOUT_CLKCMU_FSYS2_UFS_EMBD     135
+#define DOUT_CLKCMU_FSYS2_ETHERNET     136
+#define DOUT_CLKCMU_G2D_G2D            137
+#define DOUT_CLKCMU_G2D_MSCL           138
+#define DOUT_CLKCMU_G3D00_SWITCH       139
+#define DOUT_CLKCMU_G3D01_SWITCH       140
+#define DOUT_CLKCMU_G3D1_SWITCH                141
+#define DOUT_CLKCMU_ISPB_BUS           142
+#define DOUT_CLKCMU_MFC_MFC            143
+#define DOUT_CLKCMU_MFC_WFD            144
+#define DOUT_CLKCMU_MIF_SWITCH         145
+#define DOUT_CLKCMU_MIF_BUSP           146
+#define DOUT_CLKCMU_NPU_BUS            147
+#define DOUT_CLKCMU_PERIC0_BUS         148
+#define DOUT_CLKCMU_PERIC0_IP          149
+#define DOUT_CLKCMU_PERIC1_BUS         150
+#define DOUT_CLKCMU_PERIC1_IP          151
+#define DOUT_CLKCMU_PERIS_BUS          152
+
+/* GAT in CMU_TOP */
+#define GOUT_CLKCMU_CMU_BOOST          201
+#define GOUT_CLKCMU_CPUCL0_BOOST       202
+#define GOUT_CLKCMU_CPUCL1_BOOST       203
+#define GOUT_CLKCMU_CORE_BOOST         204
+#define GOUT_CLKCMU_BUSC_BOOST         205
+#define GOUT_CLKCMU_BUSMC_BOOST                206
+#define GOUT_CLKCMU_MIF_BOOST          207
+#define GOUT_CLKCMU_ACC_BUS            208
+#define GOUT_CLKCMU_APM_BUS            209
+#define GOUT_CLKCMU_AUD_CPU            210
+#define GOUT_CLKCMU_AUD_BUS            211
+#define GOUT_CLKCMU_BUSC_BUS           212
+#define GOUT_CLKCMU_BUSMC_BUS          214
+#define GOUT_CLKCMU_CORE_BUS           215
+#define GOUT_CLKCMU_CPUCL0_SWITCH      216
+#define GOUT_CLKCMU_CPUCL0_CLUSTER     217
+#define GOUT_CLKCMU_CPUCL1_SWITCH      219
+#define GOUT_CLKCMU_CPUCL1_CLUSTER     220
+#define GOUT_CLKCMU_DPTX_BUS           221
+#define GOUT_CLKCMU_DPTX_DPGTC         222
+#define GOUT_CLKCMU_DPUM_BUS           223
+#define GOUT_CLKCMU_DPUS0_BUS          224
+#define GOUT_CLKCMU_DPUS1_BUS          225
+#define GOUT_CLKCMU_FSYS0_BUS          226
+#define GOUT_CLKCMU_FSYS0_PCIE         227
+#define GOUT_CLKCMU_FSYS1_BUS          228
+#define GOUT_CLKCMU_FSYS1_USBDRD       229
+#define GOUT_CLKCMU_FSYS1_MMC_CARD     230
+#define GOUT_CLKCMU_FSYS2_BUS          231
+#define GOUT_CLKCMU_FSYS2_UFS_EMBD     232
+#define GOUT_CLKCMU_FSYS2_ETHERNET     233
+#define GOUT_CLKCMU_G2D_G2D            234
+#define GOUT_CLKCMU_G2D_MSCL           235
+#define GOUT_CLKCMU_G3D00_SWITCH       236
+#define GOUT_CLKCMU_G3D01_SWITCH       237
+#define GOUT_CLKCMU_G3D1_SWITCH                238
+#define GOUT_CLKCMU_ISPB_BUS           239
+#define GOUT_CLKCMU_MFC_MFC            240
+#define GOUT_CLKCMU_MFC_WFD            241
+#define GOUT_CLKCMU_MIF_SWITCH         242
+#define GOUT_CLKCMU_MIF_BUSP           243
+#define GOUT_CLKCMU_NPU_BUS            244
+#define GOUT_CLKCMU_PERIC0_BUS         245
+#define GOUT_CLKCMU_PERIC0_IP          246
+#define GOUT_CLKCMU_PERIC1_BUS         247
+#define GOUT_CLKCMU_PERIC1_IP          248
+#define GOUT_CLKCMU_PERIS_BUS          249
+
+#define TOP_NR_CLK                     249
+
+/* CMU_BUSMC */
+#define CLK_MOUT_BUSMC_BUS_USER                1
+#define CLK_DOUT_BUSMC_BUSP            2
+#define CLK_GOUT_BUSMC_PDMA0_PCLK      3
+#define CLK_GOUT_BUSMC_SPDMA_PCLK      4
+
+#define BUSMC_NR_CLK                   4
+
+/* CMU_CORE */
+#define CLK_MOUT_CORE_BUS_USER         1
+#define CLK_DOUT_CORE_BUSP             2
+#define CLK_GOUT_CORE_CCI_CLK          3
+#define CLK_GOUT_CORE_CCI_PCLK         4
+#define CLK_GOUT_CORE_CMU_CORE_PCLK    5
+
+#define CORE_NR_CLK                    5
+
+/* CMU_FSYS2 */
+#define CLK_MOUT_FSYS2_BUS_USER                1
+#define CLK_MOUT_FSYS2_UFS_EMBD_USER   2
+#define CLK_MOUT_FSYS2_ETHERNET_USER   3
+#define CLK_GOUT_FSYS2_UFS_EMBD0_ACLK  4
+#define CLK_GOUT_FSYS2_UFS_EMBD0_UNIPRO        5
+#define CLK_GOUT_FSYS2_UFS_EMBD1_ACLK  6
+#define CLK_GOUT_FSYS2_UFS_EMBD1_UNIPRO        7
+
+#define FSYS2_NR_CLK                   7
+
+/* CMU_PERIC0 */
+#define CLK_MOUT_PERIC0_BUS_USER       1
+#define CLK_MOUT_PERIC0_IP_USER                2
+#define CLK_MOUT_PERIC0_USI00_USI      3
+#define CLK_MOUT_PERIC0_USI01_USI      4
+#define CLK_MOUT_PERIC0_USI02_USI      5
+#define CLK_MOUT_PERIC0_USI03_USI      6
+#define CLK_MOUT_PERIC0_USI04_USI      7
+#define CLK_MOUT_PERIC0_USI05_USI      8
+#define CLK_MOUT_PERIC0_USI_I2C                9
+
+#define CLK_DOUT_PERIC0_USI00_USI      10
+#define CLK_DOUT_PERIC0_USI01_USI      11
+#define CLK_DOUT_PERIC0_USI02_USI      12
+#define CLK_DOUT_PERIC0_USI03_USI      13
+#define CLK_DOUT_PERIC0_USI04_USI      14
+#define CLK_DOUT_PERIC0_USI05_USI      15
+#define CLK_DOUT_PERIC0_USI_I2C                16
+
+#define CLK_GOUT_PERIC0_IPCLK_0                20
+#define CLK_GOUT_PERIC0_IPCLK_1                21
+#define CLK_GOUT_PERIC0_IPCLK_2                22
+#define CLK_GOUT_PERIC0_IPCLK_3                23
+#define CLK_GOUT_PERIC0_IPCLK_4                24
+#define CLK_GOUT_PERIC0_IPCLK_5                25
+#define CLK_GOUT_PERIC0_IPCLK_6                26
+#define CLK_GOUT_PERIC0_IPCLK_7                27
+#define CLK_GOUT_PERIC0_IPCLK_8                28
+#define CLK_GOUT_PERIC0_IPCLK_9                29
+#define CLK_GOUT_PERIC0_IPCLK_10       30
+#define CLK_GOUT_PERIC0_IPCLK_11       30
+#define CLK_GOUT_PERIC0_PCLK_0         31
+#define CLK_GOUT_PERIC0_PCLK_1         32
+#define CLK_GOUT_PERIC0_PCLK_2         33
+#define CLK_GOUT_PERIC0_PCLK_3         34
+#define CLK_GOUT_PERIC0_PCLK_4         35
+#define CLK_GOUT_PERIC0_PCLK_5         36
+#define CLK_GOUT_PERIC0_PCLK_6         37
+#define CLK_GOUT_PERIC0_PCLK_7         38
+#define CLK_GOUT_PERIC0_PCLK_8         39
+#define CLK_GOUT_PERIC0_PCLK_9         40
+#define CLK_GOUT_PERIC0_PCLK_10                41
+#define CLK_GOUT_PERIC0_PCLK_11                42
+
+#define PERIC0_NR_CLK                  42
+
+/* CMU_PERIC1 */
+#define CLK_MOUT_PERIC1_BUS_USER       1
+#define CLK_MOUT_PERIC1_IP_USER                2
+#define CLK_MOUT_PERIC1_USI06_USI      3
+#define CLK_MOUT_PERIC1_USI07_USI      4
+#define CLK_MOUT_PERIC1_USI08_USI      5
+#define CLK_MOUT_PERIC1_USI09_USI      6
+#define CLK_MOUT_PERIC1_USI10_USI      7
+#define CLK_MOUT_PERIC1_USI11_USI      8
+#define CLK_MOUT_PERIC1_USI_I2C                9
+
+#define CLK_DOUT_PERIC1_USI06_USI      10
+#define CLK_DOUT_PERIC1_USI07_USI      11
+#define CLK_DOUT_PERIC1_USI08_USI      12
+#define CLK_DOUT_PERIC1_USI09_USI      13
+#define CLK_DOUT_PERIC1_USI10_USI      14
+#define CLK_DOUT_PERIC1_USI11_USI      15
+#define CLK_DOUT_PERIC1_USI_I2C                16
+
+#define CLK_GOUT_PERIC1_IPCLK_0                20
+#define CLK_GOUT_PERIC1_IPCLK_1                21
+#define CLK_GOUT_PERIC1_IPCLK_2                22
+#define CLK_GOUT_PERIC1_IPCLK_3                23
+#define CLK_GOUT_PERIC1_IPCLK_4                24
+#define CLK_GOUT_PERIC1_IPCLK_5                25
+#define CLK_GOUT_PERIC1_IPCLK_6                26
+#define CLK_GOUT_PERIC1_IPCLK_7                27
+#define CLK_GOUT_PERIC1_IPCLK_8                28
+#define CLK_GOUT_PERIC1_IPCLK_9                29
+#define CLK_GOUT_PERIC1_IPCLK_10       30
+#define CLK_GOUT_PERIC1_IPCLK_11       30
+#define CLK_GOUT_PERIC1_PCLK_0         31
+#define CLK_GOUT_PERIC1_PCLK_1         32
+#define CLK_GOUT_PERIC1_PCLK_2         33
+#define CLK_GOUT_PERIC1_PCLK_3         34
+#define CLK_GOUT_PERIC1_PCLK_4         35
+#define CLK_GOUT_PERIC1_PCLK_5         36
+#define CLK_GOUT_PERIC1_PCLK_6         37
+#define CLK_GOUT_PERIC1_PCLK_7         38
+#define CLK_GOUT_PERIC1_PCLK_8         39
+#define CLK_GOUT_PERIC1_PCLK_9         40
+#define CLK_GOUT_PERIC1_PCLK_10                41
+#define CLK_GOUT_PERIC1_PCLK_11                42
+
+#define PERIC1_NR_CLK                  42
+
+/* CMU_PERIS */
+#define CLK_MOUT_PERIS_BUS_USER                1
+#define CLK_GOUT_SYSREG_PERIS_PCLK     2
+#define CLK_GOUT_WDT_CLUSTER0          3
+#define CLK_GOUT_WDT_CLUSTER1          4
+
+#define PERIS_NR_CLK                   4
+
+#endif /* _DT_BINDINGS_CLOCK_EXYNOSAUTOV9_H */
index e02770b..25e8cfd 100644 (file)
 #define STM32MP1_LAST_CLK 232
 
 /* SCMI clock identifiers */
-#define CK_SCMI0_HSE           0
-#define CK_SCMI0_HSI           1
-#define CK_SCMI0_CSI           2
-#define CK_SCMI0_LSE           3
-#define CK_SCMI0_LSI           4
-#define CK_SCMI0_PLL2_Q                5
-#define CK_SCMI0_PLL2_R                6
-#define CK_SCMI0_MPU           7
-#define CK_SCMI0_AXI           8
-#define CK_SCMI0_BSEC          9
-#define CK_SCMI0_CRYP1         10
-#define CK_SCMI0_GPIOZ         11
-#define CK_SCMI0_HASH1         12
-#define CK_SCMI0_I2C4          13
-#define CK_SCMI0_I2C6          14
-#define CK_SCMI0_IWDG1         15
-#define CK_SCMI0_RNG1          16
-#define CK_SCMI0_RTC           17
-#define CK_SCMI0_RTCAPB                18
-#define CK_SCMI0_SPI6          19
-#define CK_SCMI0_USART1                20
-
-#define CK_SCMI1_PLL3_Q                0
-#define CK_SCMI1_PLL3_R                1
-#define CK_SCMI1_MCU           2
+#define CK_SCMI_HSE            0
+#define CK_SCMI_HSI            1
+#define CK_SCMI_CSI            2
+#define CK_SCMI_LSE            3
+#define CK_SCMI_LSI            4
+#define CK_SCMI_PLL2_Q         5
+#define CK_SCMI_PLL2_R         6
+#define CK_SCMI_MPU            7
+#define CK_SCMI_AXI            8
+#define CK_SCMI_BSEC           9
+#define CK_SCMI_CRYP1          10
+#define CK_SCMI_GPIOZ          11
+#define CK_SCMI_HASH1          12
+#define CK_SCMI_I2C4           13
+#define CK_SCMI_I2C6           14
+#define CK_SCMI_IWDG1          15
+#define CK_SCMI_RNG1           16
+#define CK_SCMI_RTC            17
+#define CK_SCMI_RTCAPB         18
+#define CK_SCMI_SPI6           19
+#define CK_SCMI_USART1         20
 
 #endif /* _DT_BINDINGS_STM32MP1_CLKS_H_ */
index 8cae969..bd4c308 100644 (file)
 #define TEGRA234_CLK_PEX2_C9_CORE              173U
 /** @brief output of gate CLK_ENB_PEX2_CORE_10 */
 #define TEGRA234_CLK_PEX2_C10_CORE             187U
+/** @brief CLK_RST_CONTROLLER_CLK_SOURCE_QSPI0 switch divider output */
+#define TEGRA234_CLK_QSPI0_2X_PM               192U
+/** @brief CLK_RST_CONTROLLER_CLK_SOURCE_QSPI1 switch divider output */
+#define TEGRA234_CLK_QSPI1_2X_PM               193U
+/** @brief output of the divider QSPI_CLK_DIV2_SEL in CLK_RST_CONTROLLER_CLK_SOURCE_QSPI0 */
+#define TEGRA234_CLK_QSPI0_PM                  194U
+/** @brief output of the divider QSPI_CLK_DIV2_SEL in CLK_RST_CONTROLLER_CLK_SOURCE_QSPI1 */
+#define TEGRA234_CLK_QSPI1_PM                  195U
 /** @brief CLK_RST_CONTROLLER_CLK_SOURCE_SDMMC_LEGACY_TM switch divider output */
 #define TEGRA234_CLK_SDMMC_LEGACY_TM           219U
 /** @brief output of gate CLK_ENB_PEX0_CORE_0 */
index 9f90c40..7789bcc 100644 (file)
 #define IMX8MP_HSIOBLK_PD_PCIE                         3
 #define IMX8MP_HSIOBLK_PD_PCIE_PHY                     4
 
+#define IMX8MP_MEDIABLK_PD_MIPI_DSI_1                  0
+#define IMX8MP_MEDIABLK_PD_MIPI_CSI2_1                 1
+#define IMX8MP_MEDIABLK_PD_LCDIF_1                     2
+#define IMX8MP_MEDIABLK_PD_ISI                         3
+#define IMX8MP_MEDIABLK_PD_MIPI_CSI2_2                 4
+#define IMX8MP_MEDIABLK_PD_LCDIF_2                     5
+#define IMX8MP_MEDIABLK_PD_ISP                         6
+#define IMX8MP_MEDIABLK_PD_DWE                         7
+#define IMX8MP_MEDIABLK_PD_MIPI_DSI_2                  8
+
+#define IMX8MP_HDMIBLK_PD_IRQSTEER                     0
+#define IMX8MP_HDMIBLK_PD_LCDIF                                1
+#define IMX8MP_HDMIBLK_PD_PAI                          2
+#define IMX8MP_HDMIBLK_PD_PVI                          3
+#define IMX8MP_HDMIBLK_PD_TRNG                         4
+#define IMX8MP_HDMIBLK_PD_HDMI_TX                      5
+#define IMX8MP_HDMIBLK_PD_HDMI_TX_PHY                  6
+
 #endif
diff --git a/include/dt-bindings/power/r8a779g0-sysc.h b/include/dt-bindings/power/r8a779g0-sysc.h
new file mode 100644 (file)
index 0000000..7daa70f
--- /dev/null
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Copyright (C) 2022 Renesas Electronics Corp.
+ */
+#ifndef __DT_BINDINGS_POWER_R8A779G0_SYSC_H__
+#define __DT_BINDINGS_POWER_R8A779G0_SYSC_H__
+
+/*
+ * These power domain indices match the Power Domain Register Numbers (PDR)
+ */
+
+#define R8A779G0_PD_A1E0D0C0           0
+#define R8A779G0_PD_A1E0D0C1           1
+#define R8A779G0_PD_A1E0D1C0           2
+#define R8A779G0_PD_A1E0D1C1           3
+#define R8A779G0_PD_A2E0D0             16
+#define R8A779G0_PD_A2E0D1             17
+#define R8A779G0_PD_A3E0               20
+#define R8A779G0_PD_A33DGA             24
+#define R8A779G0_PD_A23DGB             25
+#define R8A779G0_PD_A1DSP0             33
+#define R8A779G0_PD_A2IMP01            34
+#define R8A779G0_PD_A2PSC              35
+#define R8A779G0_PD_A2CV0              36
+#define R8A779G0_PD_A2CV1              37
+#define R8A779G0_PD_A1CNN0             41
+#define R8A779G0_PD_A2CN0              42
+#define R8A779G0_PD_A3IR               43
+#define R8A779G0_PD_A1DSP1             45
+#define R8A779G0_PD_A2IMP23            46
+#define R8A779G0_PD_A2DMA              47
+#define R8A779G0_PD_A2CV2              48
+#define R8A779G0_PD_A2CV3              49
+#define R8A779G0_PD_A1DSP2             53
+#define R8A779G0_PD_A1DSP3             54
+#define R8A779G0_PD_A3VIP0             56
+#define R8A779G0_PD_A3VIP1             57
+#define R8A779G0_PD_A3VIP2             58
+#define R8A779G0_PD_A3ISP0             60
+#define R8A779G0_PD_A3ISP1             61
+
+/* Always-on power area */
+#define R8A779G0_PD_ALWAYS_ON          64
+
+#endif /* __DT_BINDINGS_POWER_R8A779G0_SYSC_H__*/
index be9a7ca..764ca99 100644 (file)
@@ -27,4 +27,7 @@
 
 #define MT8192_TOPRGU_SW_RST_NUM                               23
 
+/* MMSYS resets */
+#define MT8192_MMSYS_SW0_RST_B_DISP_DSI0                       15
+
 #endif  /* _DT_BINDINGS_RESET_CONTROLLER_MT8192 */
index f3a0ed3..4ffa7c3 100644 (file)
 #define GPIOK_R                19786
 
 /* SCMI reset domain identifiers */
-#define RST_SCMI0_SPI6         0
-#define RST_SCMI0_I2C4         1
-#define RST_SCMI0_I2C6         2
-#define RST_SCMI0_USART1       3
-#define RST_SCMI0_STGEN                4
-#define RST_SCMI0_GPIOZ                5
-#define RST_SCMI0_CRYP1                6
-#define RST_SCMI0_HASH1                7
-#define RST_SCMI0_RNG1         8
-#define RST_SCMI0_MDMA         9
-#define RST_SCMI0_MCU          10
-#define RST_SCMI0_MCU_HOLD_BOOT        11
+#define RST_SCMI_SPI6          0
+#define RST_SCMI_I2C4          1
+#define RST_SCMI_I2C6          2
+#define RST_SCMI_USART1        3
+#define RST_SCMI_STGEN         4
+#define RST_SCMI_GPIOZ         5
+#define RST_SCMI_CRYP1         6
+#define RST_SCMI_HASH1         7
+#define RST_SCMI_RNG1          8
+#define RST_SCMI_MDMA          9
+#define RST_SCMI_MCU           10
+#define RST_SCMI_MCU_HOLD_BOOT 11
 
 #endif /* _DT_BINDINGS_STM32MP1_RESET_H_ */
index 1362cd5..547ca3b 100644 (file)
@@ -40,6 +40,8 @@
 #define TEGRA234_RESET_PWM6                    73U
 #define TEGRA234_RESET_PWM7                    74U
 #define TEGRA234_RESET_PWM8                    75U
+#define TEGRA234_RESET_QSPI0                   76U
+#define TEGRA234_RESET_QSPI1                   77U
 #define TEGRA234_RESET_SDMMC4                  85U
 #define TEGRA234_RESET_UARTA                   100U
 #define TEGRA234_RESET_PEX0_CORE_0             116U