Merge tag 'soc-dt-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 May 2024 15:45:18 +0000 (08:45 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 13 May 2024 15:45:18 +0000 (08:45 -0700)
Pull SoC devicetree updates from Arnd Bergmann:
 "The updates this time are a bit smaller than most times, mainly
  because it is not totally dominated by new Qualcomm hardware support.

  Instead, we larger than average updates for Rockchips, NXP, Allwinner
  and TI. The only two new SoCs this time are both from NXP and are
  minor variants of already supported ones.

  The updates for aspeed, amlogic and mediatek came a little late, so
  I'm saving those for part 2 in a few days if everything turns out
  fine.

  New machines this time contain:

   - two Broadcom SoC based wireless routers from Asus

   - Five allwinner based consumer devices for gaming, set-top-box and
     eboot reader applications

   - Three older phones based on Qualcomm chips, plus the more recent
     Sony Xperia 1 V

   - 14 industrial and embedded boards based on NXP i.MX6, i.MX8,
     layerscape and s32g3 SoCs

   - six rockchips boards including another handheld game console and a
     few single-board computers

  On top of these, we have the usual cleanups for dtc warnings and
  updates to add more features to already merged machines"

* tag 'soc-dt-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (612 commits)
  arm64: dts: marvell: espressobin-ultra: fix Ethernet Switch unit address
  arm64: dts: marvell: turris-mox: drop unneeded flash address/size-cells
  arm64: dts: marvell: eDPU: drop redundant address/size-cells
  arm64: dts: qcom: pm6150: correct USB VBUS regulator compatible
  arm64: dts: rockchip: add rk3588 pcie and php IOMMUs
  arm64: dts: rockchip: enable onboard spi flash for rock-3a
  arm64: dts: rockchip: add USB-C support to rk3588s-orangepi-5
  arm64: dts: rockchip: Enable GPU on Orange Pi 5
  arm64: dts: rockchip: enable GPU on khadas-edge2
  arm64: dts: rockchip: Add USB3 on Edgeble NCM6A-IO board
  arm64: dts: rockchip: Support poweroff on Edgeble Neural Compute Module
  arm64: dts: rockchip: Add Radxa ROCK 3C
  dt-bindings: arm: rockchip: add Radxa ROCK 3C
  arm64: dts: exynos: gs101: specify empty clocks for remaining pinctrl
  arm64: dts: exynos: gs101: specify bus clock for pinctrl_hsi2
  arm64: dts: exynos: gs101: specify bus clock for pinctrl_peric[01]
  arm64: dts: exynos: gs101: specify bus clock for pinctrl (far) alive
  arm64: dts: Add/fix /memory node unit-addresses
  arm64: dts: qcom: qcs404: fix bluetooth device address
  arm64: dts: qcom: sc8280xp-x13s: enable USB MP and fingerprint reader
  ...

565 files changed:
Documentation/devicetree/bindings/arm/bcm/brcm,bcm4708.yaml
Documentation/devicetree/bindings/arm/bcm/raspberrypi,bcm2835-firmware.yaml
Documentation/devicetree/bindings/arm/fsl.yaml
Documentation/devicetree/bindings/arm/keystone/ti,sci.yaml
Documentation/devicetree/bindings/arm/qcom.yaml
Documentation/devicetree/bindings/arm/rockchip.yaml
Documentation/devicetree/bindings/arm/sunxi.yaml
Documentation/devicetree/bindings/clock/google,gs101-clock.yaml
Documentation/devicetree/bindings/display/panel/panel-simple.yaml
Documentation/devicetree/bindings/display/tegra/nvidia,tegra20-host1x.yaml
Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt [deleted file]
Documentation/devicetree/bindings/media/st,stm32mp25-video-codec.yaml
Documentation/devicetree/bindings/soc/qcom/qcom,pmic-glink.yaml
Documentation/devicetree/bindings/soc/renesas/renesas,r9a09g057-sys.yaml [new file with mode: 0644]
Documentation/devicetree/bindings/soc/renesas/renesas.yaml
Documentation/devicetree/bindings/soc/samsung/samsung,exynos-sysreg.yaml
Documentation/devicetree/bindings/usb/fsl,usbmisc.yaml
Documentation/devicetree/bindings/vendor-prefixes.yaml
arch/arm/boot/dts/allwinner/Makefile
arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts [new file with mode: 0644]
arch/arm/boot/dts/allwinner/sun5i-a13.dtsi
arch/arm/boot/dts/allwinner/sun5i-gr8-chip-pro.dts
arch/arm/boot/dts/allwinner/sun5i-r8-chip.dts
arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts
arch/arm/boot/dts/allwinner/sun6i-a31.dtsi
arch/arm/boot/dts/allwinner/sun6i-a31s-sinovoip-bpi-m2.dts
arch/arm/boot/dts/allwinner/sun7i-a20-bananapi-m1-plus.dts
arch/arm/boot/dts/allwinner/sun7i-a20-cubietruck.dts
arch/arm/boot/dts/allwinner/sun7i-a20-hummingbird.dts
arch/arm/boot/dts/allwinner/sun7i-a20-olimex-som-evb-emmc.dts
arch/arm/boot/dts/allwinner/sun7i-a20-olimex-som204-evb-emmc.dts
arch/arm/boot/dts/allwinner/sun7i-a20-olimex-som204-evb.dts
arch/arm/boot/dts/allwinner/sun7i-a20-olinuxino-lime2.dts
arch/arm/boot/dts/allwinner/sun7i-a20-wits-pro-a20-dkt.dts
arch/arm/boot/dts/allwinner/sun7i-a20.dtsi
arch/arm/boot/dts/allwinner/sun8i-a23-a33.dtsi
arch/arm/boot/dts/allwinner/sun8i-a23-polaroid-mid2407pxe03.dts
arch/arm/boot/dts/allwinner/sun8i-a23-polaroid-mid2809pxe04.dts
arch/arm/boot/dts/allwinner/sun8i-a33-ga10h-v1.1.dts
arch/arm/boot/dts/allwinner/sun8i-a33-inet-d978-rev2.dts
arch/arm/boot/dts/allwinner/sun8i-a33.dtsi
arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3.dts
arch/arm/boot/dts/allwinner/sun8i-a83t-cubietruck-plus.dts
arch/arm/boot/dts/allwinner/sun8i-a83t-tbs-a711.dts
arch/arm/boot/dts/allwinner/sun8i-a83t.dtsi
arch/arm/boot/dts/allwinner/sun8i-h2-plus-bananapi-m2-zero.dts
arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-r1.dts
arch/arm/boot/dts/allwinner/sun8i-h2-plus-orangepi-zero.dts
arch/arm/boot/dts/allwinner/sun8i-h3-beelink-x2.dts
arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-duo2.dts
arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-m1-plus.dts
arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-neo-air.dts
arch/arm/boot/dts/allwinner/sun8i-h3-nanopi-r1.dts
arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-2.dts
arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-lite.dts
arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-pc-plus.dts
arch/arm/boot/dts/allwinner/sun8i-h3-orangepi-zero-plus2.dts
arch/arm/boot/dts/allwinner/sun8i-q8-common.dtsi
arch/arm/boot/dts/allwinner/sun8i-r16-bananapi-m2m.dts
arch/arm/boot/dts/allwinner/sun8i-r16-parrot.dts
arch/arm/boot/dts/allwinner/sun8i-r40-bananapi-m2-ultra.dts
arch/arm/boot/dts/allwinner/sun8i-r40-oka40i-c.dts
arch/arm/boot/dts/allwinner/sun8i-s3-pinecube.dts
arch/arm/boot/dts/allwinner/sun8i-v3s.dtsi
arch/arm/boot/dts/allwinner/sun8i-v40-bananapi-m2-berry.dts
arch/arm/boot/dts/allwinner/sun9i-a80.dtsi
arch/arm/boot/dts/allwinner/sunxi-bananapi-m2-plus.dtsi
arch/arm/boot/dts/allwinner/sunxi-h3-h5-emlid-neutis.dtsi
arch/arm/boot/dts/allwinner/sunxi-h3-h5.dtsi
arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-romed8hm3.dts
arch/arm/boot/dts/aspeed/aspeed-bmc-delta-ahe50dc.dts
arch/arm/boot/dts/broadcom/Makefile
arch/arm/boot/dts/broadcom/bcm2711-rpi-4-b.dts
arch/arm/boot/dts/broadcom/bcm2711-rpi-400.dts
arch/arm/boot/dts/broadcom/bcm2711-rpi-cm4-io.dts
arch/arm/boot/dts/broadcom/bcm2711-rpi.dtsi
arch/arm/boot/dts/broadcom/bcm2711.dtsi
arch/arm/boot/dts/broadcom/bcm2835-rpi-common.dtsi
arch/arm/boot/dts/broadcom/bcm2835-rpi.dtsi
arch/arm/boot/dts/broadcom/bcm283x.dtsi
arch/arm/boot/dts/broadcom/bcm4709-asus-rt-ac3200.dts [new file with mode: 0644]
arch/arm/boot/dts/broadcom/bcm47094-asus-rt-ac3100.dts
arch/arm/boot/dts/broadcom/bcm47094-asus-rt-ac3100.dtsi
arch/arm/boot/dts/broadcom/bcm47094-asus-rt-ac5300.dts [new file with mode: 0644]
arch/arm/boot/dts/broadcom/bcm47094-asus-rt-ac88u.dts
arch/arm/boot/dts/nvidia/tegra20-colibri.dtsi
arch/arm/boot/dts/nvidia/tegra20-paz00.dts
arch/arm/boot/dts/nxp/imx/Makefile
arch/arm/boot/dts/nxp/imx/e60k02.dtsi
arch/arm/boot/dts/nxp/imx/e70k02.dtsi
arch/arm/boot/dts/nxp/imx/imx27-phytec-phycard-s-som.dtsi
arch/arm/boot/dts/nxp/imx/imx51-ts4800.dts
arch/arm/boot/dts/nxp/imx/imx53-kp-ddc.dts
arch/arm/boot/dts/nxp/imx/imx53-kp.dtsi
arch/arm/boot/dts/nxp/imx/imx53-m53evk.dts
arch/arm/boot/dts/nxp/imx/imx53-mba53.dts
arch/arm/boot/dts/nxp/imx/imx53-ppd.dts
arch/arm/boot/dts/nxp/imx/imx53-tqma53.dtsi
arch/arm/boot/dts/nxp/imx/imx6dl-aristainetos_4.dts
arch/arm/boot/dts/nxp/imx/imx6dl-aristainetos_7.dts
arch/arm/boot/dts/nxp/imx/imx6dl-mamoj.dts
arch/arm/boot/dts/nxp/imx/imx6q-ba16.dtsi
arch/arm/boot/dts/nxp/imx/imx6q-bosch-acc.dts
arch/arm/boot/dts/nxp/imx/imx6q-kp.dtsi
arch/arm/boot/dts/nxp/imx/imx6q-novena.dts
arch/arm/boot/dts/nxp/imx/imx6q-pistachio.dts
arch/arm/boot/dts/nxp/imx/imx6q-prti6q.dts
arch/arm/boot/dts/nxp/imx/imx6q-var-dt6customboard.dts
arch/arm/boot/dts/nxp/imx/imx6qdl-apf6dev.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-aristainetos2.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-cubox-i.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-emcon.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-gw52xx.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-gw53xx.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-gw54xx.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-gw560x.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-gw5903.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-gw5904.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-icore.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-mba6.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-nit6xlite.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-nitrogen6_max.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-nitrogen6_som2.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-nitrogen6x.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-phytec-mira.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-sabreauto.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-sabrelite.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-sabresd.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-savageboard.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-skov-cpu.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl-udoo.dtsi
arch/arm/boot/dts/nxp/imx/imx6qdl.dtsi
arch/arm/boot/dts/nxp/imx/imx6sl-evk.dts
arch/arm/boot/dts/nxp/imx/imx6sl-tolino-shine2hd.dts
arch/arm/boot/dts/nxp/imx/imx6sll-evk.dts
arch/arm/boot/dts/nxp/imx/imx6sll.dtsi
arch/arm/boot/dts/nxp/imx/imx6sx-nitrogen6sx.dts
arch/arm/boot/dts/nxp/imx/imx6sx-sdb.dtsi
arch/arm/boot/dts/nxp/imx/imx6sx-softing-vining-2000.dts
arch/arm/boot/dts/nxp/imx/imx6sx.dtsi
arch/arm/boot/dts/nxp/imx/imx6ul-14x14-evk.dtsi
arch/arm/boot/dts/nxp/imx/imx6ul-ccimx6ulsbcpro.dts
arch/arm/boot/dts/nxp/imx/imx6ul-geam.dts
arch/arm/boot/dts/nxp/imx/imx6ul-imx6ull-opos6uldev.dtsi
arch/arm/boot/dts/nxp/imx/imx6ul-isiot.dtsi
arch/arm/boot/dts/nxp/imx/imx6ul-kontron-bl-43.dts
arch/arm/boot/dts/nxp/imx/imx6ul-kontron-bl-common.dtsi
arch/arm/boot/dts/nxp/imx/imx6ul-pico.dtsi
arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board-emmc.dts [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board-nand.dts [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-master.dts
arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-slave.dts
arch/arm/boot/dts/nxp/imx/imx6ull-tarragon-slavext.dts
arch/arm/boot/dts/nxp/imx/imx6ull-uti260b.dts [new file with mode: 0644]
arch/arm/boot/dts/nxp/imx/imx7s.dtsi
arch/arm/boot/dts/qcom/Makefile
arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom/qcom-apq8064.dtsi
arch/arm/boot/dts/qcom/qcom-apq8084.dtsi
arch/arm/boot/dts/qcom/qcom-ipq4019.dtsi
arch/arm/boot/dts/qcom/qcom-ipq8064.dtsi
arch/arm/boot/dts/qcom/qcom-msm8916-smp.dtsi
arch/arm/boot/dts/qcom/qcom-msm8974.dtsi
arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte.dts
arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-castor.dts
arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi [new file with mode: 0644]
arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-leo.dts [new file with mode: 0644]
arch/arm/boot/dts/qcom/qcom-sdx55.dtsi
arch/arm/boot/dts/renesas/r7s72100.dtsi
arch/arm/boot/dts/renesas/r8a73a4.dtsi
arch/arm/boot/dts/renesas/r8a7742.dtsi
arch/arm/boot/dts/renesas/r8a7743.dtsi
arch/arm/boot/dts/renesas/r8a7744.dtsi
arch/arm/boot/dts/renesas/r8a7745.dtsi
arch/arm/boot/dts/renesas/r8a77470.dtsi
arch/arm/boot/dts/renesas/r8a7790.dtsi
arch/arm/boot/dts/renesas/r8a7791.dtsi
arch/arm/boot/dts/renesas/r8a7792.dtsi
arch/arm/boot/dts/renesas/r8a7793.dtsi
arch/arm/boot/dts/renesas/r8a7794.dtsi
arch/arm/boot/dts/renesas/r9a06g032.dtsi
arch/arm/boot/dts/samsung/exynos3250.dtsi
arch/arm/boot/dts/samsung/exynos4.dtsi
arch/arm/boot/dts/samsung/exynos4210-smdkv310.dts
arch/arm/boot/dts/samsung/exynos4212-tab3.dtsi
arch/arm/boot/dts/samsung/exynos4412-origen.dts
arch/arm/boot/dts/samsung/exynos4412-smdk4412.dts
arch/arm/boot/dts/samsung/exynos5250.dtsi
arch/arm/boot/dts/samsung/exynos5420.dtsi
arch/arm/boot/dts/samsung/exynos5800-peach-pi.dts
arch/arm/boot/dts/samsung/s5pv210.dtsi
arch/arm/boot/dts/st/stm32f746.dtsi
arch/arm/boot/dts/st/stm32f769.dtsi
arch/arm/boot/dts/st/stm32mp13-pinctrl.dtsi
arch/arm/boot/dts/st/stm32mp131.dtsi
arch/arm/boot/dts/st/stm32mp133.dtsi
arch/arm/boot/dts/st/stm32mp135.dtsi
arch/arm/boot/dts/st/stm32mp135f-dk.dts
arch/arm/boot/dts/st/stm32mp13xc.dtsi
arch/arm/boot/dts/st/stm32mp13xf.dtsi
arch/arm/boot/dts/st/stm32mp151.dtsi
arch/arm/boot/dts/st/stm32mp153.dtsi
arch/arm/boot/dts/st/stm32mp157c-ed1.dts
arch/arm/boot/dts/st/stm32mp15xc.dtsi
arch/arm/boot/dts/ti/keystone/keystone-k2g.dtsi
arch/arm/boot/dts/ti/omap/am33xx.dtsi
arch/arm/boot/dts/ti/omap/am4372.dtsi
arch/arm/boot/dts/ti/omap/dra76x.dtsi
arch/arm/boot/dts/ti/omap/dra7xx-clocks.dtsi
arch/arm/boot/dts/ti/omap/omap3-n900.dts
arch/arm64/boot/dts/actions/s700-cubieboard7.dts
arch/arm64/boot/dts/allwinner/Makefile
arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-pinebook.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
arch/arm64/boot/dts/allwinner/sun50i-a64-teres-i.dts
arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo-plus2.dts
arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-r1s-h5.dts
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus.dts
arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-zero-plus2.dts
arch/arm64/boot/dts/allwinner/sun50i-h6-beelink-gs1.dts
arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3.dts
arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts
arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64-model-b.dts
arch/arm64/boot/dts/allwinner/sun50i-h6-pine-h64.dts
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
arch/arm64/boot/dts/allwinner/sun50i-h618-transpeed-8k618-t.dts
arch/arm64/boot/dts/allwinner/sun50i-h64-remix-mini-pc.dts
arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts [new file with mode: 0644]
arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-plus.dts [new file with mode: 0644]
arch/arm64/boot/dts/altera/socfpga_stratix10.dtsi
arch/arm64/boot/dts/amazon/alpine-v2.dtsi
arch/arm64/boot/dts/amazon/alpine-v3.dtsi
arch/arm64/boot/dts/amd/elba-16core.dtsi
arch/arm64/boot/dts/amd/elba-asic-common.dtsi
arch/arm64/boot/dts/amd/elba-asic.dts
arch/arm64/boot/dts/amd/elba-flash-parts.dtsi
arch/arm64/boot/dts/amd/elba.dtsi
arch/arm64/boot/dts/apm/apm-merlin.dts
arch/arm64/boot/dts/apm/apm-mustang.dts
arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
arch/arm64/boot/dts/apm/apm-storm.dtsi
arch/arm64/boot/dts/arm/juno-base.dtsi
arch/arm64/boot/dts/arm/juno-scmi.dtsi
arch/arm64/boot/dts/arm/vexpress-v2f-1xv7-ca53x2.dts
arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi
arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts
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/stingray.dtsi
arch/arm64/boot/dts/cavium/thunder-88xx.dtsi
arch/arm64/boot/dts/cavium/thunder2-99xx.dts
arch/arm64/boot/dts/cavium/thunder2-99xx.dtsi
arch/arm64/boot/dts/exynos/exynos5433.dtsi
arch/arm64/boot/dts/exynos/exynos850.dtsi
arch/arm64/boot/dts/exynos/exynosautov9.dtsi
arch/arm64/boot/dts/exynos/google/gs101-oriole.dts
arch/arm64/boot/dts/exynos/google/gs101.dtsi
arch/arm64/boot/dts/freescale/Makefile
arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3-ads2.dts
arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi
arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi
arch/arm64/boot/dts/freescale/fsl-lx2162a-clearfog.dts
arch/arm64/boot/dts/freescale/fsl-lx2162a-sr-som.dtsi
arch/arm64/boot/dts/freescale/imx8-ss-audio.dtsi
arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8-ss-img.dtsi
arch/arm64/boot/dts/freescale/imx8dx-colibri-aster.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8dx-colibri-eval-v3.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8dx-colibri-iris-v2.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8dx-colibri-iris.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8dx-colibri.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8dx.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8dxl-evk.dts
arch/arm64/boot/dts/freescale/imx8dxl.dtsi
arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi
arch/arm64/boot/dts/freescale/imx8mm-var-som-symphony.dts
arch/arm64/boot/dts/freescale/imx8mm-venice-gw71xx.dtsi
arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts
arch/arm64/boot/dts/freescale/imx8mm-verdin-dahlia.dtsi
arch/arm64/boot/dts/freescale/imx8mm-verdin-dev.dtsi
arch/arm64/boot/dts/freescale/imx8mm-verdin-yavia.dtsi
arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi
arch/arm64/boot/dts/freescale/imx8mm.dtsi
arch/arm64/boot/dts/freescale/imx8mn-ddr3l-evk.dts
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
arch/arm64/boot/dts/freescale/imx8mn-evk.dts
arch/arm64/boot/dts/freescale/imx8mn-evk.dtsi
arch/arm64/boot/dts/freescale/imx8mn-var-som-symphony.dts
arch/arm64/boot/dts/freescale/imx8mn.dtsi
arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts
arch/arm64/boot/dts/freescale/imx8mp-debix-model-a.dts
arch/arm64/boot/dts/freescale/imx8mp-debix-som-a-bmb-08.dts
arch/arm64/boot/dts/freescale/imx8mp-dhcom-pdk3.dts
arch/arm64/boot/dts/freescale/imx8mp-evk.dts
arch/arm64/boot/dts/freescale/imx8mp-msc-sm2s.dtsi
arch/arm64/boot/dts/freescale/imx8mp-navqp.dts [new file with mode: 0644]
arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts
arch/arm64/boot/dts/freescale/imx8mp-venice-gw71xx.dtsi
arch/arm64/boot/dts/freescale/imx8mp-venice-gw72xx.dtsi
arch/arm64/boot/dts/freescale/imx8mp-venice-gw73xx.dtsi
arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx-imx219.dtso
arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts
arch/arm64/boot/dts/freescale/imx8mp-verdin-dahlia.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-dev.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-mallow.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin-yavia.dtsi
arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi
arch/arm64/boot/dts/freescale/imx8mp.dtsi
arch/arm64/boot/dts/freescale/imx8mq-hummingboard-pulse.dts
arch/arm64/boot/dts/freescale/imx8mq-librem5-devkit.dts
arch/arm64/boot/dts/freescale/imx8mq.dtsi
arch/arm64/boot/dts/freescale/imx8qm-mek.dts
arch/arm64/boot/dts/freescale/imx8qxp-mek.dts
arch/arm64/boot/dts/freescale/imx8qxp.dtsi
arch/arm64/boot/dts/freescale/imx8ulp-evk.dts
arch/arm64/boot/dts/freescale/imx8ulp.dtsi
arch/arm64/boot/dts/freescale/imx93-11x11-evk.dts
arch/arm64/boot/dts/freescale/imx93.dtsi
arch/arm64/boot/dts/freescale/mba8mx.dtsi
arch/arm64/boot/dts/freescale/s32g2.dtsi
arch/arm64/boot/dts/freescale/s32g274a-evb.dts
arch/arm64/boot/dts/freescale/s32g274a-rdb2.dts
arch/arm64/boot/dts/freescale/s32g3.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/freescale/s32g399a-rdb3.dts [new file with mode: 0644]
arch/arm64/boot/dts/hisilicon/hi3798cv200.dtsi
arch/arm64/boot/dts/hisilicon/hi6220-hikey.dts
arch/arm64/boot/dts/hisilicon/hi6220.dtsi
arch/arm64/boot/dts/hisilicon/hip05-d02.dts
arch/arm64/boot/dts/hisilicon/hip05.dtsi
arch/arm64/boot/dts/hisilicon/hip06.dtsi
arch/arm64/boot/dts/hisilicon/hip07.dtsi
arch/arm64/boot/dts/intel/keembay-soc.dtsi
arch/arm64/boot/dts/intel/socfpga_agilex.dtsi
arch/arm64/boot/dts/lg/lg1312-ref.dts
arch/arm64/boot/dts/lg/lg1313-ref.dts
arch/arm64/boot/dts/marvell/ac5-98dx25xx.dtsi
arch/arm64/boot/dts/marvell/armada-3720-eDPU.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-37xx.dtsi
arch/arm64/boot/dts/marvell/armada-ap80x.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/marvell/cn9132-db.dtsi
arch/arm64/boot/dts/mediatek/mt8516.dtsi
arch/arm64/boot/dts/microchip/sparx5.dtsi
arch/arm64/boot/dts/microchip/sparx5_pcb134_board.dtsi
arch/arm64/boot/dts/microchip/sparx5_pcb135_board.dtsi
arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts
arch/arm64/boot/dts/nvidia/tegra132-norrin.dts
arch/arm64/boot/dts/nvidia/tegra132.dtsi
arch/arm64/boot/dts/nvidia/tegra210-smaug.dts
arch/arm64/boot/dts/nvidia/tegra210.dtsi
arch/arm64/boot/dts/nvidia/tegra234.dtsi
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/apq8016-sbc.dts
arch/arm64/boot/dts/qcom/ipq6018.dtsi
arch/arm64/boot/dts/qcom/ipq8074-hk10.dtsi
arch/arm64/boot/dts/qcom/ipq8074.dtsi
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
arch/arm64/boot/dts/qcom/msm8916-mtp.dts
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-e2015-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-fortuna-common.dtsi
arch/arm64/boot/dts/qcom/msm8916-samsung-rossa-common.dtsi
arch/arm64/boot/dts/qcom/msm8939-samsung-a7.dts
arch/arm64/boot/dts/qcom/msm8953.dtsi
arch/arm64/boot/dts/qcom/msm8996.dtsi
arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi
arch/arm64/boot/dts/qcom/msm8998.dtsi
arch/arm64/boot/dts/qcom/pm6150.dtsi
arch/arm64/boot/dts/qcom/pm6150l.dtsi
arch/arm64/boot/dts/qcom/qcm2290.dtsi
arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts
arch/arm64/boot/dts/qcom/qcm6490-idp.dts
arch/arm64/boot/dts/qcom/qcs404-evb.dtsi
arch/arm64/boot/dts/qcom/qcs404.dtsi
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts
arch/arm64/boot/dts/qcom/qdu1000.dtsi
arch/arm64/boot/dts/qcom/qrb2210-rb1.dts
arch/arm64/boot/dts/qcom/qrb4210-rb2.dts
arch/arm64/boot/dts/qcom/sa8155p-adp.dts
arch/arm64/boot/dts/qcom/sa8775p.dtsi
arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi
arch/arm64/boot/dts/qcom/sc7180.dtsi
arch/arm64/boot/dts/qcom/sc7280.dtsi
arch/arm64/boot/dts/qcom/sc8180x-lenovo-flex-5g.dts
arch/arm64/boot/dts/qcom/sc8180x.dtsi
arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
arch/arm64/boot/dts/qcom/sc8280xp.dtsi
arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile.dtsi
arch/arm64/boot/dts/qcom/sdm632-fairphone-fp3.dts
arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts
arch/arm64/boot/dts/qcom/sdm845-db845c.dts
arch/arm64/boot/dts/qcom/sdm845.dtsi
arch/arm64/boot/dts/qcom/sdx75.dtsi
arch/arm64/boot/dts/qcom/sm6350.dtsi
arch/arm64/boot/dts/qcom/sm8150-hdk.dts
arch/arm64/boot/dts/qcom/sm8150.dtsi
arch/arm64/boot/dts/qcom/sm8250-xiaomi-elish-common.dtsi
arch/arm64/boot/dts/qcom/sm8250.dtsi
arch/arm64/boot/dts/qcom/sm8350-hdk.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/qcom/sm8550-sony-xperia-yodo-pdx234.dts [new file with mode: 0644]
arch/arm64/boot/dts/qcom/sm8550.dtsi
arch/arm64/boot/dts/qcom/sm8650-mtp.dts
arch/arm64/boot/dts/qcom/sm8650-qrd.dts
arch/arm64/boot/dts/qcom/sm8650.dtsi
arch/arm64/boot/dts/qcom/x1e80100-crd.dts
arch/arm64/boot/dts/qcom/x1e80100-pmics.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/qcom/x1e80100-qcp.dts
arch/arm64/boot/dts/qcom/x1e80100.dtsi
arch/arm64/boot/dts/realtek/rtd129x.dtsi
arch/arm64/boot/dts/realtek/rtd139x.dtsi
arch/arm64/boot/dts/realtek/rtd16xx.dtsi
arch/arm64/boot/dts/renesas/Makefile
arch/arm64/boot/dts/renesas/r8a77970-eagle-function-expansion.dtso [new file with mode: 0644]
arch/arm64/boot/dts/renesas/r8a779f4-s4sk.dts
arch/arm64/boot/dts/renesas/r8a779h0-gray-hawk-single.dts
arch/arm64/boot/dts/renesas/r8a779h0.dtsi
arch/arm64/boot/dts/renesas/r9a07g043.dtsi
arch/arm64/boot/dts/renesas/r9a07g043u.dtsi
arch/arm64/boot/dts/renesas/rzg2ul-smarc.dtsi
arch/arm64/boot/dts/renesas/rzg3s-smarc-som.dtsi
arch/arm64/boot/dts/rockchip/Makefile
arch/arm64/boot/dts/rockchip/rk3308.dtsi
arch/arm64/boot/dts/rockchip/rk3326-gameforce-chi.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3328.dtsi
arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi
arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts
arch/arm64/boot/dts/rockchip/rk3368-r88.dts
arch/arm64/boot/dts/rockchip/rk3368.dtsi
arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-4c-plus.dts
arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353p.dts
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353ps.dts
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353v.dts
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg353vs.dts
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rg503.dts
arch/arm64/boot/dts/rockchip/rk3566-anbernic-rgxx3.dtsi
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rgb30.dts
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dts
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-rk2023.dtsi
arch/arm64/boot/dts/rockchip/rk3566-powkiddy-x55.dts
arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts
arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts
arch/arm64/boot/dts/rockchip/rk3566-rock-3c.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3566-soquartz-blade.dts
arch/arm64/boot/dts/rockchip/rk3566-soquartz-cm4.dts
arch/arm64/boot/dts/rockchip/rk3566-soquartz-model-a.dts
arch/arm64/boot/dts/rockchip/rk3566-soquartz.dtsi
arch/arm64/boot/dts/rockchip/rk3568-mecsbc.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts
arch/arm64/boot/dts/rockchip/rk3568-wolfvision-pf5-io-expander.dtso [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3568-wolfvision-pf5.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk356x.dtsi
arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5.dtsi
arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-common.dtsi
arch/arm64/boot/dts/rockchip/rk3588-edgeble-neu6a-io.dtsi
arch/arm64/boot/dts/rockchip/rk3588-evb1-v10.dts
arch/arm64/boot/dts/rockchip/rk3588-fet3588-c.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
arch/arm64/boot/dts/rockchip/rk3588-ok3588-c.dts [new file with mode: 0644]
arch/arm64/boot/dts/rockchip/rk3588-quartzpro64.dts
arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
arch/arm64/boot/dts/rockchip/rk3588-turing-rk1.dtsi
arch/arm64/boot/dts/rockchip/rk3588.dtsi
arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
arch/arm64/boot/dts/rockchip/rk3588s-khadas-edge2.dts
arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts
arch/arm64/boot/dts/rockchip/rk3588s-rock-5a.dts
arch/arm64/boot/dts/rockchip/rk3588s.dtsi
arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts
arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
arch/arm64/boot/dts/sprd/sc9860.dtsi
arch/arm64/boot/dts/sprd/sc9863a.dtsi
arch/arm64/boot/dts/sprd/sharkl3.dtsi
arch/arm64/boot/dts/sprd/sp9860g-1h10.dts
arch/arm64/boot/dts/sprd/whale2.dtsi
arch/arm64/boot/dts/st/stm32mp25-pinctrl.dtsi
arch/arm64/boot/dts/st/stm32mp251.dtsi
arch/arm64/boot/dts/st/stm32mp253.dtsi
arch/arm64/boot/dts/st/stm32mp255.dtsi
arch/arm64/boot/dts/st/stm32mp257f-ev1.dts
arch/arm64/boot/dts/synaptics/berlin4ct.dtsi
arch/arm64/boot/dts/tesla/fsd.dtsi
arch/arm64/boot/dts/ti/Makefile
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
arch/arm64/boot/dts/ti/k3-am62-main.dtsi
arch/arm64/boot/dts/ti/k3-am62-verdin-dahlia.dtsi
arch/arm64/boot/dts/ti/k3-am62-verdin-dev.dtsi
arch/arm64/boot/dts/ti/k3-am62-verdin-mallow.dtsi
arch/arm64/boot/dts/ti/k3-am62-verdin-yavia.dtsi
arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi
arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
arch/arm64/boot/dts/ti/k3-am625-phyboard-lyra-rdk.dts
arch/arm64/boot/dts/ti/k3-am62a-main.dtsi
arch/arm64/boot/dts/ti/k3-am62a-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
arch/arm64/boot/dts/ti/k3-am62p-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
arch/arm64/boot/dts/ti/k3-am642-evm.dts
arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-gpio-fan.dtso [new file with mode: 0644]
arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-rdk.dts
arch/arm64/boot/dts/ti/k3-am642-sk.dts
arch/arm64/boot/dts/ti/k3-am65-iot2050-common-pg1.dtsi
arch/arm64/boot/dts/ti/k3-am65-main.dtsi
arch/arm64/boot/dts/ti/k3-am65-mcu.dtsi
arch/arm64/boot/dts/ti/k3-am65-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-am69-sk.dts
arch/arm64/boot/dts/ti/k3-j7200-main.dtsi
arch/arm64/boot/dts/ti/k3-j7200-mcu-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi
arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi
arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-j721s2.dtsi
arch/arm64/boot/dts/ti/k3-j722s-evm.dts
arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
arch/arm64/boot/dts/ti/k3-j784s4-mcu-wakeup.dtsi
arch/arm64/boot/dts/ti/k3-j784s4.dtsi
arch/arm64/boot/dts/xilinx/zynqmp.dtsi
arch/riscv/boot/dts/renesas/r9a07g043f.dtsi
arch/riscv/boot/dts/renesas/rzfive-smarc-som.dtsi
arch/riscv/boot/dts/sophgo/cv1800b-milkv-duo.dts
arch/riscv/boot/dts/sophgo/cv1800b.dtsi
arch/riscv/boot/dts/sophgo/cv1812h.dtsi
arch/riscv/boot/dts/sophgo/cv18xx.dtsi
drivers/firmware/raspberrypi.c
include/dt-bindings/clock/google,gs101.h
include/dt-bindings/clock/r8a73a4-clock.h

index 4cc4e67..d925e7a 100644 (file)
@@ -53,6 +53,7 @@ properties:
       - description: BCM4709 based boards
         items:
           - enum:
+              - asus,rt-ac3200
               - asus,rt-ac87u
               - buffalo,wxr-1900dhp
               - linksys,ea9200
@@ -67,6 +68,7 @@ properties:
         items:
           - enum:
               - asus,rt-ac3100
+              - asus,rt-ac5300
               - asus,rt-ac88u
               - dlink,dir-885l
               - dlink,dir-890l
index 39e3c24..1f84407 100644 (file)
@@ -46,6 +46,30 @@ properties:
       - compatible
       - "#clock-cells"
 
+  gpio:
+    type: object
+    additionalProperties: false
+
+    properties:
+      compatible:
+        const: raspberrypi,firmware-gpio
+
+      gpio-controller: true
+
+      "#gpio-cells":
+        const: 2
+        description:
+          The first cell is the pin number, and the second cell is used to
+          specify the gpio polarity (GPIO_ACTIVE_HIGH or GPIO_ACTIVE_LOW).
+
+      gpio-line-names:
+        minItems: 8
+
+    required:
+      - compatible
+      - gpio-controller
+      - "#gpio-cells"
+
   reset:
     type: object
     additionalProperties: false
@@ -96,6 +120,12 @@ examples:
             #clock-cells = <1>;
         };
 
+        expgpio: gpio {
+            compatible = "raspberrypi,firmware-gpio";
+            gpio-controller;
+            #gpio-cells = <2>;
+        };
+
         reset: reset {
             compatible = "raspberrypi,firmware-reset";
             #reset-cells = <1>;
index 0027201..6d185d0 100644 (file)
@@ -813,6 +813,14 @@ properties:
           - const: tq,imx6ull-tqma6ull2l      # MCIMX6Y2, LGA SoM variant
           - const: fsl,imx6ull
 
+      - description: Seeed Stuido i.MX6ULL SoM on dev boards
+        items:
+          - enum:
+              - seeed,imx6ull-seeed-npi-emmc
+              - seeed,imx6ull-seeed-npi-nand
+          - const: seeed,imx6ull-seeed-npi
+          - const: fsl,imx6ull
+
       - description: i.MX6ULZ based Boards
         items:
           - enum:
@@ -1050,6 +1058,7 @@ properties:
           - enum:
               - beacon,imx8mp-beacon-kit  # i.MX8MP Beacon Development Kit
               - dmo,imx8mp-data-modul-edm-sbc # i.MX8MP eDM SBC
+              - emcraft,imx8mp-navqp      # i.MX8MP Emcraft Systems NavQ+ Kit
               - fsl,imx8mp-evk            # i.MX8MP EVK Board
               - gateworks,imx8mp-gw71xx-2x # i.MX8MP Gateworks Board
               - gateworks,imx8mp-gw72xx-2x # i.MX8MP Gateworks Board
@@ -1218,7 +1227,6 @@ properties:
           - enum:
               - einfochips,imx8qxp-ai_ml  # i.MX8QXP AI_ML Board
               - fsl,imx8qxp-mek           # i.MX8QXP MEK Board
-              - toradex,colibri-imx8x     # Colibri iMX8X Modules
           - const: fsl,imx8qxp
 
       - description: i.MX8DXL based Boards
@@ -1227,7 +1235,7 @@ properties:
               - fsl,imx8dxl-evk           # i.MX8DXL EVK Board
           - const: fsl,imx8dxl
 
-      - description: i.MX8QXP Boards with Toradex Colibri iMX8X Modules
+      - description: i.MX8QXP/i.MX8DX Boards with Toradex Colibri iMX8X Modules
         items:
           - enum:
               - toradex,colibri-imx8x-aster   # Colibri iMX8X Module on Aster Board
@@ -1235,7 +1243,9 @@ properties:
               - toradex,colibri-imx8x-iris    # Colibri iMX8X Module on Iris Board
               - toradex,colibri-imx8x-iris-v2 # Colibri iMX8X Module on Iris Board V2
           - const: toradex,colibri-imx8x
-          - const: fsl,imx8qxp
+          - enum:
+              - fsl,imx8qxp
+              - fsl,imx8dx
 
       - description:
           TQMa8Xx is a series of SOM featuring NXP i.MX8X system-on-chip
@@ -1536,6 +1546,12 @@ properties:
               - nxp,s32g274a-rdb2
           - const: nxp,s32g2
 
+      - description: S32G3 based Boards
+        items:
+          - enum:
+              - nxp,s32g399a-rdb3
+          - const: nxp,s32g3
+
       - description: S32V234 based Boards
         items:
           - enum:
index c24ad09..7f06b10 100644 (file)
@@ -61,10 +61,6 @@ properties:
   mboxes:
     minItems: 2
 
-  ti,system-reboot-controller:
-    description: Determines If system reboot can be triggered by SoC reboot
-    type: boolean
-
   ti,host-id:
     $ref: /schemas/types.yaml#/definitions/uint32
     description: |
@@ -94,7 +90,6 @@ examples:
   - |
     pmmc: system-controller@2921800 {
       compatible = "ti,k2g-sci";
-      ti,system-reboot-controller;
       mbox-names = "rx", "tx";
       mboxes = <&msgmgr 5 2>,
                <&msgmgr 0 0>;
index 66beaac..ae88541 100644 (file)
@@ -137,6 +137,7 @@ properties:
               - microsoft,dempsey
               - microsoft,makepeace
               - microsoft,moneypenny
+              - motorola,falcon
               - samsung,s3ve3g
           - const: qcom,msm8226
 
@@ -184,13 +185,16 @@ properties:
               - oneplus,bacon
               - samsung,klte
               - sony,xperia-castor
+              - sony,xperia-leo
           - const: qcom,msm8974pro
           - const: qcom,msm8974
 
       - items:
-          - const: qcom,msm8916-mtp
-          - const: qcom,msm8916-mtp/1
-          - const: qcom,msm8916
+          - enum:
+              - samsung,kltechn
+          - const: samsung,klte
+          - const: qcom,msm8974pro
+          - const: qcom,msm8974
 
       - items:
           - enum:
@@ -200,6 +204,8 @@ properties:
               - gplus,fl8005a
               - huawei,g7
               - longcheer,l8910
+              - longcheer,l8150
+              - qcom,msm8916-mtp
               - samsung,a3u-eur
               - samsung,a5u-eur
               - samsung,e5
@@ -220,11 +226,6 @@ properties:
               - yiming,uz801-v3
           - const: qcom,msm8916
 
-      - items:
-          - const: longcheer,l8150
-          - const: qcom,msm8916-v1-qrd/9-v1
-          - const: qcom,msm8916
-
       - items:
           - enum:
               - motorola,potter
@@ -1003,6 +1004,7 @@ properties:
               - qcom,sm8550-hdk
               - qcom,sm8550-mtp
               - qcom,sm8550-qrd
+              - sony,pdx234
           - const: qcom,sm8550
 
       - items:
index fcf7316..e04c213 100644 (file)
@@ -49,6 +49,11 @@ properties:
               - anbernic,rg-arc-s
           - const: rockchip,rk3566
 
+      - description: ArmSoM Sige7 board
+        items:
+          - const: armsom,sige7
+          - const: rockchip,rk3588
+
       - description: Asus Tinker board
         items:
           - const: asus,rk3288-tinker
@@ -198,6 +203,13 @@ properties:
           - const: firefly,rk3568-roc-pc
           - const: rockchip,rk3568
 
+      - description: Forlinx FET3588-C SoM
+        items:
+          - enum:
+              - forlinx,ok3588-c
+          - const: forlinx,fet3588-c
+          - const: rockchip,rk3588
+
       - description: FriendlyElec NanoPi R2 series boards
         items:
           - enum:
@@ -236,6 +248,11 @@ properties:
           - const: friendlyarm,nanopc-t6
           - const: rockchip,rk3588
 
+      - description: GameForce Chi
+        items:
+          - const: gameforce,chi
+          - const: rockchip,rk3326
+
       - description: GeekBuying GeekBox
         items:
           - const: geekbuying,geekbox
@@ -631,7 +648,7 @@ properties:
           - const: phytec,rk3288-phycore-som
           - const: rockchip,rk3288
 
-      - description: Pine64 PinebookPro
+      - description: Pine64 Pinebook Pro
         items:
           - const: pine64,pinebook-pro
           - const: rockchip,rk3399
@@ -644,7 +661,7 @@ properties:
           - const: pine64,pinenote
           - const: rockchip,rk3566
 
-      - description: Pine64 PinePhonePro
+      - description: Pine64 PinePhone Pro
         items:
           - const: pine64,pinephone-pro
           - const: rockchip,rk3399
@@ -682,7 +699,7 @@ properties:
           - const: pine64,quartzpro64
           - const: rockchip,rk3588
 
-      - description: Pine64 SoQuartz SoM
+      - description: Pine64 SOQuartz
         items:
           - enum:
               - pine64,soquartz-blade
@@ -700,12 +717,17 @@ properties:
               - powkiddy,x55
           - const: rockchip,rk3566
 
+      - description: Protonic MECSBC board
+        items:
+          - const: prt,mecsbc
+          - const: rockchip,rk3568
+
       - description: QNAP TS-433-4G 4-Bay NAS
         items:
           - const: qnap,ts433
           - const: rockchip,rk3568
 
-      - description: Radxa Compute Module 3(CM3)
+      - description: Radxa Compute Module 3 (CM3)
         items:
           - enum:
               - radxa,cm3-io
@@ -767,22 +789,27 @@ properties:
           - const: radxa,rockpis
           - const: rockchip,rk3308
 
-      - description: Radxa Rock2 Square
+      - description: Radxa Rock 2 Square
         items:
           - const: radxa,rock2-square
           - const: rockchip,rk3288
 
-      - description: Radxa ROCK3 Model A
+      - description: Radxa ROCK 3A
         items:
           - const: radxa,rock3a
           - const: rockchip,rk3568
 
-      - description: Radxa ROCK 5 Model A
+      - description: Radxa ROCK 3C
+        items:
+          - const: radxa,rock-3c
+          - const: rockchip,rk3566
+
+      - description: Radxa ROCK 5A
         items:
           - const: radxa,rock-5a
           - const: rockchip,rk3588s
 
-      - description: Radxa ROCK 5 Model B
+      - description: Radxa ROCK 5B
         items:
           - const: radxa,rock-5b
           - const: rockchip,rk3588
@@ -927,6 +954,11 @@ properties:
           - const: turing,rk1
           - const: rockchip,rk3588
 
+      - description: WolfVision PF5 mainboard
+        items:
+          - const: wolfvision,rk3568-pf5
+          - const: rockchip,rk3568
+
       - description: Xunlong Orange Pi 5 Plus
         items:
           - const: xunlong,orangepi-5-plus
index 09d835d..c6d0d8d 100644 (file)
@@ -56,6 +56,21 @@ properties:
           - const: anbernic,rg-nano
           - const: allwinner,sun8i-v3s
 
+      - description: Anbernic RG35XX (2024)
+      - items:
+          - const: anbernic,rg35xx-2024
+          - const: allwinner,sun50i-h700
+
+      - description: Anbernic RG35XX Plus
+      - items:
+          - const: anbernic,rg35xx-plus
+          - const: allwinner,sun50i-h700
+
+      - description: Anbernic RG35XX H
+      - items:
+          - const: anbernic,rg35xx-h
+          - const: allwinner,sun50i-h700
+
       - description: Amarula A64 Relic
         items:
           - const: amarula,a64-relic
@@ -774,6 +789,11 @@ properties:
           - const: pocketbook,touch-lux-3
           - const: allwinner,sun5i-a13
 
+      - description: PocketBook 614 Plus
+        items:
+          - const: pocketbook,614-plus
+          - const: allwinner,sun5i-a13
+
       - description: Point of View Protab2-IPS9
         items:
           - const: pov,protab2-ips9
@@ -860,6 +880,11 @@ properties:
           - const: allwinner,sl631
           - const: allwinner,sun8i-v3
 
+      - description: Tanix TX1
+        items:
+          - const: oranth,tanix-tx1
+          - const: allwinner,sun50i-h616
+
       - description: Tanix TX6
         items:
           - const: oranth,tanix-tx6
index 1d2bcea..caf442e 100644 (file)
@@ -30,16 +30,18 @@ properties:
       - google,gs101-cmu-top
       - google,gs101-cmu-apm
       - google,gs101-cmu-misc
+      - google,gs101-cmu-hsi0
+      - google,gs101-cmu-hsi2
       - google,gs101-cmu-peric0
       - google,gs101-cmu-peric1
 
   clocks:
     minItems: 1
-    maxItems: 3
+    maxItems: 5
 
   clock-names:
     minItems: 1
-    maxItems: 3
+    maxItems: 5
 
   "#clock-cells":
     const: 1
@@ -72,6 +74,55 @@ allOf:
           items:
             - const: oscclk
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: google,gs101-cmu-hsi0
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (24.576 MHz)
+            - description: HSI0 bus clock (from CMU_TOP)
+            - description: DPGTC (from CMU_TOP)
+            - description: USB DRD controller clock (from CMU_TOP)
+            - description: USB Display Port debug clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: bus
+            - const: dpgtc
+            - const: usb31drd
+            - const: usbdpdbg
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - google,gs101-cmu-hsi2
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: External reference clock (24.576 MHz)
+            - description: High Speed Interface bus clock (from CMU_TOP)
+            - description: High Speed Interface pcie clock (from CMU_TOP)
+            - description: High Speed Interface ufs clock (from CMU_TOP)
+            - description: High Speed Interface mmc clock (from CMU_TOP)
+
+        clock-names:
+          items:
+            - const: oscclk
+            - const: bus
+            - const: pcie
+            - const: ufs
+            - const: mmc
+
   - if:
       properties:
         compatible:
index a95445f..397e810 100644 (file)
@@ -348,15 +348,6 @@ properties:
         # Yes Optoelectronics YTC700TLAG-05-201C 7" TFT LCD panel
       - yes-optoelectronics,ytc700tlag-05-201c
 
-  backlight: true
-  ddc-i2c-bus: true
-  enable-gpios: true
-  port: true
-  power-supply: true
-  no-hpd: true
-  hpd-gpios: true
-  data-mapping: true
-
 if:
   not:
     properties:
@@ -367,7 +358,7 @@ then:
   properties:
     data-mapping: false
 
-additionalProperties: false
+unevaluatedProperties: false
 
 required:
   - compatible
index 94c5242..3563378 100644 (file)
@@ -177,6 +177,15 @@ allOf:
 
       required:
         - reg-names
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - nvidia,tegra194-host1x
+    then:
+      properties:
+        dma-coherent: true
   - if:
       properties:
         compatible:
@@ -226,6 +235,8 @@ allOf:
             use. Should be a mapping of IDs 0..n to IOMMU entries corresponding to
             usable stream IDs.
 
+        dma-coherent: true
+
       required:
         - reg-names
 
diff --git a/Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt b/Documentation/devicetree/bindings/gpio/raspberrypi,firmware-gpio.txt
deleted file mode 100644 (file)
index ce97265..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Raspberry Pi GPIO expander
-
-The Raspberry Pi 3 GPIO expander is controlled by the VC4 firmware. The
-firmware exposes a mailbox interface that allows the ARM core to control the
-GPIO lines on the expander.
-
-The Raspberry Pi GPIO expander node must be a child node of the Raspberry Pi
-firmware node.
-
-Required properties:
-
-- compatible : Should be "raspberrypi,firmware-gpio"
-- gpio-controller : Marks the device node as a gpio controller
-- #gpio-cells : Should be two.  The first cell is the pin number, and
-  the second cell is used to specify the gpio polarity:
-  0 = active high
-  1 = active low
-
-Example:
-
-firmware: firmware-rpi {
-       compatible = "raspberrypi,bcm2835-firmware";
-       mboxes = <&mailbox>;
-
-       expgpio: gpio {
-                compatible = "raspberrypi,firmware-gpio";
-                gpio-controller;
-                #gpio-cells = <2>;
-        };
-};
index b8611bc..73726c6 100644 (file)
@@ -30,6 +30,10 @@ properties:
   clocks:
     maxItems: 1
 
+  access-controllers:
+    minItems: 1
+    maxItems: 2
+
 required:
   - compatible
   - reg
index 4310bae..4512390 100644 (file)
@@ -58,20 +58,6 @@ patternProperties:
 required:
   - compatible
 
-allOf:
-  - if:
-      not:
-        properties:
-          compatible:
-            contains:
-              enum:
-                - qcom,sm8450-pmic-glink
-                - qcom,sm8550-pmic-glink
-                - qcom,x1e80100-pmic-glink
-    then:
-      properties:
-        orientation-gpios: false
-
 additionalProperties: false
 
 examples:
diff --git a/Documentation/devicetree/bindings/soc/renesas/renesas,r9a09g057-sys.yaml b/Documentation/devicetree/bindings/soc/renesas/renesas,r9a09g057-sys.yaml
new file mode 100644 (file)
index 0000000..ebbf0c9
--- /dev/null
@@ -0,0 +1,51 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/soc/renesas/renesas,r9a09g057-sys.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/V2H(P) System Controller (SYS)
+
+maintainers:
+  - Geert Uytterhoeven <geert+renesas@glider.be>
+
+description: |
+  The RZ/V2H(P) SYS (System Controller) controls the overall
+  configuration of the LSI and supports the following functions,
+  - Trust zone control
+  - Extend access by specific masters to address beyond 4GB space
+  - GBETH configuration
+  - Control of settings and states of SRAM/PCIe/CM33/CA55/CR8/xSPI/ADC/TSU
+  - LSI version
+  - WDT stop control
+  - General registers
+
+properties:
+  compatible:
+    const: renesas,r9a09g057-sys
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  resets:
+    maxItems: 1
+
+required:
+  - compatible
+  - reg
+  - clocks
+  - resets
+
+additionalProperties: false
+
+examples:
+  - |
+    sys: system-controller@10430000 {
+        compatible = "renesas,r9a09g057-sys";
+        reg = <0x10430000 0x10000>;
+        clocks = <&cpg 1>;
+        resets = <&cpg 1>;
+    };
index c1ce4da..09d3ce9 100644 (file)
@@ -513,6 +513,14 @@ properties:
               - renesas,rzv2mevk2   # RZ/V2M Eval Board v2.0
           - const: renesas,r9a09g011
 
+      - description: RZ/V2H(P) (R9A09G057)
+        items:
+          - enum:
+              - renesas,r9a09g057h41 # RZ/V2H
+              - renesas,r9a09g057h42 # RZ/V2H with Mali-G31 support
+              - renesas,r9a09g057h44 # RZ/V2HP with Mali-G31 + Mali-C55 support
+          - const: renesas,r9a09g057
+
 additionalProperties: true
 
 ...
index c0c6ce8..3ca2205 100644 (file)
@@ -15,6 +15,7 @@ properties:
       - items:
           - enum:
               - google,gs101-apm-sysreg
+              - google,gs101-hsi2-sysreg
               - google,gs101-peric0-sysreg
               - google,gs101-peric1-sysreg
               - samsung,exynos3-sysreg
@@ -72,6 +73,7 @@ allOf:
         compatible:
           contains:
             enum:
+              - google,gs101-hsi2-sysreg
               - google,gs101-peric0-sysreg
               - google,gs101-peric1-sysreg
               - samsung,exynos850-cmgp-sysreg
index 2d3589d..0a6e7ac 100644 (file)
@@ -33,6 +33,7 @@ properties:
               - fsl,imx7ulp-usbmisc
               - fsl,imx8mm-usbmisc
               - fsl,imx8mn-usbmisc
+              - fsl,imx8ulp-usbmisc
           - const: fsl,imx7d-usbmisc
           - const: fsl,imx6q-usbmisc
       - items:
index b97d298..460c729 100644 (file)
@@ -151,6 +151,8 @@ patternProperties:
     description: ARM Ltd.
   "^armadeus,.*":
     description: ARMadeus Systems SARL
+  "^armsom,.*":
+    description: ArmSoM Technology Co., Ltd.
   "^arrow,.*":
     description: Arrow Electronics
   "^artesyn,.*":
@@ -438,6 +440,8 @@ patternProperties:
     description: Dongguan EmbedFire Electronic Technology Co., Ltd.
   "^embest,.*":
     description: Shenzhen Embest Technology Co., Ltd.
+  "^emcraft,.*":
+    description: Emcraft Systems
   "^emlid,.*":
     description: Emlid, Ltd.
   "^emmicro,.*":
@@ -1627,6 +1631,8 @@ patternProperties:
     description: Wondermedia Technologies, Inc.
   "^wobo,.*":
     description: Wobo
+  "^wolfvision,.*":
+    description: WolfVision GmbH
   "^x-powers,.*":
     description: X-Powers
   "^xen,.*":
index 2d26c33..4247f19 100644 (file)
@@ -61,6 +61,7 @@ dtb-$(CONFIG_MACH_SUN5I) += \
        sun5i-a13-olinuxino.dtb \
        sun5i-a13-olinuxino-micro.dtb \
        sun5i-a13-pocketbook-touch-lux-3.dtb \
+       sun5i-a13-pocketbook-614-plus.dtb \
        sun5i-a13-q8-tablet.dtb \
        sun5i-a13-utoo-p66.dtb \
        sun5i-gr8-chip-pro.dtb \
diff --git a/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts b/arch/arm/boot/dts/allwinner/sun5i-a13-pocketbook-614-plus.dts
new file mode 100644 (file)
index 0000000..ab8d138
--- /dev/null
@@ -0,0 +1,218 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 Denis Burkov <hitechshell@mail.ru>
+ */
+
+/dts-v1/;
+#include "sun5i-a13.dtsi"
+#include "sunxi-common-regulators.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "PocketBook 614 Plus";
+       compatible = "pocketbook,614-plus", "allwinner,sun5i-a13";
+
+       aliases {
+               serial0 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       linux,default-trigger = "default-on";
+                       gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-0 {
+                       label = "Right";
+                       linux,code = <KEY_NEXT>;
+                       gpios = <&pio 6 9 GPIO_ACTIVE_LOW>; /* PG9 */
+               };
+
+               key-1 {
+                       label = "Left";
+                       linux,code = <KEY_PREVIOUS>;
+                       gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
+               };
+       };
+
+       reg_3v3_mmc0: regulator-mmc0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd-mmc0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&pio 4 4 GPIO_ACTIVE_LOW>; /* PE4 */
+               vin-supply = <&reg_vcc3v3>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&i2c0 {
+       status = "okay";
+
+       axp209: pmic@34 {
+               compatible = "x-powers,axp209";
+               reg = <0x34>;
+               interrupts = <0>;
+       };
+};
+
+#include "axp209.dtsi"
+
+&i2c1 {
+       status = "okay";
+
+       pcf8563: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+       };
+};
+
+&lradc {
+       vref-supply = <&reg_ldo2>;
+       status = "okay";
+
+       button-300 {
+               label = "Down";
+               linux,code = <KEY_DOWN>;
+               channel = <0>;
+               voltage = <300000>;
+       };
+
+       button-700 {
+               label = "Up";
+               linux,code = <KEY_UP>;
+               channel = <0>;
+               voltage = <700000>;
+       };
+
+       button-1000 {
+               label = "Left";
+               linux,code = <KEY_LEFT>;
+               channel = <0>;
+               voltage = <1000000>;
+       };
+
+       button-1200 {
+               label = "Menu";
+               linux,code = <KEY_MENU>;
+               channel = <0>;
+               voltage = <1200000>;
+       };
+
+       button-1500 {
+               label = "Right";
+               linux,code = <KEY_RIGHT>;
+               channel = <0>;
+               voltage = <1500000>;
+       };
+};
+
+&mmc0 {
+       vmmc-supply = <&reg_3v3_mmc0>;
+       bus-width = <4>;
+       cd-gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
+       status = "okay";
+};
+
+&mmc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mmc2_4bit_pc_pins>;
+       vmmc-supply = <&reg_vcc3v3>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&otg_sram {
+       status = "okay";
+};
+
+&reg_dcdc2 {
+       regulator-always-on;
+       regulator-min-microvolt = <1000000>;
+       regulator-max-microvolt = <1500000>;
+       regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc3 {
+       regulator-always-on;
+       regulator-min-microvolt = <1000000>;
+       regulator-max-microvolt = <1400000>;
+       regulator-name = "vdd-int-dll";
+};
+
+&reg_ldo1 {
+       regulator-name = "vdd-rtc";
+};
+
+&reg_ldo2 {
+       regulator-always-on;
+       regulator-min-microvolt = <3000000>;
+       regulator-max-microvolt = <3000000>;
+       regulator-name = "avcc";
+};
+
+&reg_usb0_vbus {
+       status = "okay";
+       gpio = <&pio 6 12 GPIO_ACTIVE_HIGH>; /* PG12 */
+};
+
+&reg_usb1_vbus {
+       gpio = <&pio 6 11 GPIO_ACTIVE_HIGH>; /* PG11 */
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pg_pins>;
+       status = "okay";
+};
+
+&usb_otg {
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usb_power_supply {
+       status = "okay";
+};
+
+&battery_power_supply {
+       status = "okay";
+};
+
+&usbphy {
+       usb0_id_det-gpios = <&pio 6 2 GPIO_ACTIVE_HIGH>; /* PG2 */
+       usb0_vbus_det-gpios = <&axp_gpio 1 GPIO_ACTIVE_HIGH>;
+       usb0_vbus-supply = <&reg_usb0_vbus>;
+       usb1_vbus-supply = <&reg_usb1_vbus>;
+       status = "okay";
+};
index 3325ab0..2c9152b 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
index 5c3562b..ffbd99c 100644 (file)
@@ -77,7 +77,7 @@
                };
        };
 
-       mmc0_pwrseq: mmc0_pwrseq {
+       mmc0_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; /* PB10 */
        };
index 4192c23..8c784a2 100644 (file)
@@ -77,7 +77,7 @@
                };
        };
 
-       mmc0_pwrseq: mmc0_pwrseq {
+       mmc0_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 19 GPIO_ACTIVE_LOW>; /* PC19 */
        };
index 236ebfc..5bce7a3 100644 (file)
                };
        };
 
-       reg_vga_3v3: vga_3v3_regulator {
+       reg_vga_3v3: vga-3v3-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vga-3v3";
                regulator-min-microvolt = <3300000>;
                gpio = <&pio 7 25 GPIO_ACTIVE_HIGH>; /* PH25 */
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 */
        };
index 5cce491..f0145d6 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <70000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
                        compatible = "allwinner,sun6i-a31-prcm";
                        reg = <0x01f01400 0x200>;
 
-                       ar100: ar100_clk {
+                       ar100: ar100-clk {
                                compatible = "allwinner,sun6i-a31-ar100-clk";
                                #clock-cells = <0>;
                                clocks = <&rtc CLK_OSC32K>, <&osc24M>,
                                clock-output-names = "ar100";
                        };
 
-                       ahb0: ahb0_clk {
+                       ahb0: ahb0-clk {
                                compatible = "fixed-factor-clock";
                                #clock-cells = <0>;
                                clock-div = <1>;
                                clock-output-names = "ahb0";
                        };
 
-                       apb0: apb0_clk {
+                       apb0: apb0-clk {
                                compatible = "allwinner,sun6i-a31-apb0-clk";
                                #clock-cells = <0>;
                                clocks = <&ahb0>;
                                clock-output-names = "apb0";
                        };
 
-                       apb0_gates: apb0_gates_clk {
+                       apb0_gates: apb0-gates-clk {
                                compatible = "allwinner,sun6i-a31-apb0-gates-clk";
                                #clock-cells = <1>;
                                clocks = <&apb0>;
                                                "apb0_i2c";
                        };
 
-                       ir_clk: ir_clk {
+                       ir_clk: ir-clk {
                                #clock-cells = <0>;
                                compatible = "allwinner,sun4i-a10-mod0-clk";
                                clocks = <&rtc CLK_OSC32K>, <&osc24M>;
                                clock-output-names = "ir";
                        };
 
-                       apb0_rst: apb0_rst {
+                       apb0_rst: apb0-rst {
                                compatible = "allwinner,sun6i-a31-clock-reset";
                                #reset-cells = <1>;
                        };
index 96554ab..f63d67e 100644 (file)
@@ -75,7 +75,7 @@
                };
        };
 
-       mmc2_pwrseq: mmc2_pwrseq {
+       mmc2_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 WIFI_EN */
        };
index caa935c..f2d7fab 100644 (file)
@@ -86,7 +86,7 @@
                };
        };
 
-       mmc3_pwrseq: mmc3_pwrseq {
+       mmc3_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 7 22 GPIO_ACTIVE_LOW>; /* PH22 WL-PMU-EN */
        };
index 52160e3..be9b31d 100644 (file)
@@ -96,7 +96,7 @@
                };
        };
 
-       mmc3_pwrseq: mmc3_pwrseq {
+       mmc3_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
                clocks = <&ccu CLK_OUT_A>;
index 3def2a3..f1e26b7 100644 (file)
@@ -65,7 +65,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       reg_mmc3_vdd: mmc3_vdd {
+       reg_mmc3_vdd: regulator-mmc3-vdd {
                compatible = "regulator-fixed";
                regulator-name = "mmc3_vdd";
                regulator-min-microvolt = <3000000>;
@@ -74,7 +74,7 @@
                gpio = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
        };
 
-       reg_gmac_vdd: gmac_vdd {
+       reg_gmac_vdd: regulator-gmac-vdd {
                compatible = "regulator-fixed";
                regulator-name = "gmac_vdd";
                regulator-min-microvolt = <3000000>;
index 20bf09b..fb83573 100644 (file)
@@ -14,7 +14,7 @@
        model = "Olimex A20-Olimex-SOM-EVB-eMMC";
        compatible = "olimex,a20-olimex-som-evb-emmc", "allwinner,sun7i-a20";
 
-       mmc2_pwrseq: mmc2_pwrseq {
+       mmc2_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-emmc";
                reset-gpios = <&pio 2 18 GPIO_ACTIVE_LOW>;
        };
index a59755a..e8977c2 100644 (file)
@@ -13,7 +13,7 @@
        model = "Olimex A20-SOM204-EVB-eMMC";
        compatible = "olimex,a20-olimex-som204-evb-emmc", "allwinner,sun7i-a20";
 
-       mmc2_pwrseq: mmc2_pwrseq {
+       mmc2_pwrseq: pwrseq-1 {
                compatible = "mmc-pwrseq-emmc";
                reset-gpios = <&pio 2 16 GPIO_ACTIVE_LOW>;
        };
index 54af6c1..a554066 100644 (file)
@@ -65,7 +65,7 @@
                };
        };
 
-       rtl_pwrseq: rtl_pwrseq {
+       rtl_pwrseq: pwrseq-0 {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 9 GPIO_ACTIVE_LOW>;
        };
        non-removable;
        status = "okay";
 
-       rtl8723bs: sdio_wifi@1 {
+       rtl8723bs: wifi@1 {
                reg = <1>;
        };
 };
index ecb91fb..435a189 100644 (file)
@@ -82,7 +82,7 @@
                };
        };
 
-       reg_axp_ipsout: axp_ipsout {
+       reg_axp_ipsout: regulator-axp-ipsout {
                compatible = "regulator-fixed";
                regulator-name = "axp-ipsout";
                regulator-min-microvolt = <5000000>;
index 3bfae98..29199b6 100644 (file)
@@ -60,7 +60,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       mmc3_pwrseq: mmc3_pwrseq {
+       mmc3_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 WIFI_EN */
        };
index 5574299..5f44f09 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <100000>;
                                        hysteresis = <2000>;
index cd4bf60..2af8382 100644 (file)
                #size-cells = <1>;
                ranges;
 
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                        clock-output-names = "osc24M";
                };
 
-               ext_osc32k: ext_osc32k_clk {
+               ext_osc32k: ext-osc32k-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <32768>;
                        compatible = "allwinner,sun8i-a23-prcm";
                        reg = <0x01f01400 0x200>;
 
-                       ar100: ar100_clk {
+                       ar100: ar100-clk {
                                compatible = "fixed-factor-clock";
                                #clock-cells = <0>;
                                clock-div = <1>;
                                clock-output-names = "ar100";
                        };
 
-                       ahb0: ahb0_clk {
+                       ahb0: ahb0-clk {
                                compatible = "fixed-factor-clock";
                                #clock-cells = <0>;
                                clock-div = <1>;
                                clock-output-names = "ahb0";
                        };
 
-                       apb0: apb0_clk {
+                       apb0: apb0-clk {
                                compatible = "allwinner,sun8i-a23-apb0-clk";
                                #clock-cells = <0>;
                                clocks = <&ahb0>;
                                clock-output-names = "apb0";
                        };
 
-                       apb0_gates: apb0_gates_clk {
+                       apb0_gates: apb0-gates-clk {
                                compatible = "allwinner,sun8i-a23-apb0-gates-clk";
                                #clock-cells = <1>;
                                clocks = <&apb0>;
                                                "apb0_i2c";
                        };
 
-                       apb0_rst: apb0_rst {
+                       apb0_rst: apb0-rst {
                                compatible = "allwinner,sun6i-a31-clock-reset";
                                #reset-cells = <1>;
                        };
index d5f6aeb..0c585a6 100644 (file)
@@ -52,7 +52,7 @@
                ethernet0 = &esp8089;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
                /* The esp8089 needs 200 ms after driving wifi-en high */
@@ -76,7 +76,7 @@
        non-removable;
        status = "okay";
 
-       esp8089: sdio_wifi@1 {
+       esp8089: wifi@1 {
                compatible = "esp,esp8089";
                reg = <1>;
                esp,crystal-26M-en = <2>;
index 9f9232a..63cb4e1 100644 (file)
@@ -52,7 +52,7 @@
                ethernet0 = &esp8089;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL6 */
                /* The esp8089 needs 200 ms after driving wifi-en high */
@@ -69,7 +69,7 @@
        non-removable;
        status = "okay";
 
-       esp8089: sdio_wifi@1 {
+       esp8089: wifi@1 {
                compatible = "esp,esp8089";
                reg = <1>;
                esp,crystal-26M-en = <2>;
index 2dfdd0a..f00ce03 100644 (file)
@@ -85,7 +85,7 @@
        non-removable;
        status = "okay";
 
-       rtl8703as: sdio_wifi@1 {
+       rtl8703as: wifi@1 {
                reg = <1>;
        };
 };
index 065cb62..162ba93 100644 (file)
@@ -78,7 +78,7 @@
        non-removable;
        status = "okay";
 
-       rtl8723bs: sdio_wifi@1 {
+       rtl8723bs: wifi@1 {
                reg = <1>;
        };
 };
index 30fdd27..36b2d78 100644 (file)
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               gpu_alert0: gpu_alert0 {
+                               gpu_alert0: gpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <85000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_alert1: cpu_alert1 {
+                               cpu_alert1: cpu-alert1 {
                                        /* milliCelsius */
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
 
-                               gpu_alert1: gpu_alert1 {
+                               gpu_alert1: gpu-alert1 {
                                        /* milliCelsius */
                                        temperature = <95000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <110000>;
                                        hysteresis = <2000>;
index 8d56b10..32e811f 100644 (file)
@@ -95,7 +95,7 @@
                gpio = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&ac100_rtc 1>;
                clock-names = "ext_clock";
index 8709933..d5e6dda 100644 (file)
                compatible = "linux,spdif-dit";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&ac100_rtc 1>;
                clock-names = "ext_clock";
index a7d4ca3..43982b1 100644 (file)
                vin-supply = <&reg_vbat>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 WL-PMU-EN */
 
index 94eb3bf..addf0cb 100644 (file)
                ranges;
 
                /* TODO: PRCM block has a mux for this. */
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                 * It is an internal RC-based oscillator.
                 * TODO: Its controls are in the PRCM block.
                 */
-               osc16M: osc16M_clk {
+               osc16M: osc16M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <16000000>;
                        clock-output-names = "osc16M";
                };
 
-               osc16Md512: osc16Md512_clk {
+               osc16Md512: osc16Md512-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-factor-clock";
                        clock-div = <512>;
                        #reset-cells = <1>;
                };
 
-               r_cpucfg@1f01c00 {
+               cpucfg@1f01c00 {
                        compatible = "allwinner,sun8i-a83t-r-cpucfg";
                        reg = <0x1f01c00 0x400>;
                };
index d729b7c..d3a7c9f 100644 (file)
                cpu-supply = <&reg_vcc1v2>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 3356f42..79b03b3 100644 (file)
 /* Orange Pi R1 is based on Orange Pi Zero design */
 #include "sun8i-h2-plus-orangepi-zero.dts"
 
+/delete-node/ &reg_vcc_wifi;
+
 / {
        model = "Xunlong Orange Pi R1";
        compatible = "xunlong,orangepi-r1", "allwinner,sun8i-h2-plus";
 
-       /delete-node/ reg_vcc_wifi;
 
        /*
         * Ths pin of this regulator is the same with the Wi-Fi extra
@@ -89,7 +90,7 @@
        vmmc-supply = <&reg_vcc3v3>;
        vqmmc-supply = <&reg_vcc3v3>;
 
-       rtl8189etv: sdio_wifi@1 {
+       rtl8189etv: wifi@1 {
                reg = <1>;
        };
 };
index 3706216..1b001f2 100644 (file)
@@ -80,7 +80,7 @@
                };
        };
 
-       reg_vcc_wifi: reg_vcc_wifi {
+       reg_vcc_wifi: reg-vcc-wifi {
                compatible = "regulator-fixed";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                states = <1100000 0>, <1300000 1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>;
                post-power-on-delay-ms = <200>;
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       xr819: sdio_wifi@1 {
+       xr819: wifi@1 {
                reg = <1>;
        };
 };
index a6d38ec..5b77300 100644 (file)
                compatible = "linux,spdif-dit";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       sdiowifi: sdio_wifi@1 {
+       sdiowifi: wifi@1 {
                reg = <1>;
        };
 };
index 343b02b..2b0566d 100644 (file)
@@ -87,7 +87,7 @@
                vin-supply = <&reg_vcc5v0>;
         };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
        non-removable;
        status = "okay";
 
-       sdio_wifi: sdio_wifi@1 {
+       sdio_wifi: wifi@1 {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&pio>;
index 4ba533b..59bd074 100644 (file)
@@ -62,7 +62,7 @@
                gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
        };
        non-removable;
        status = "okay";
 
-       sdio_wifi: sdio_wifi@1 {
+       sdio_wifi: wifi@1 {
                reg = <1>;
                compatible = "brcm,bcm4329-fmac";
                interrupt-parent = <&pio>;
index 9e1a33f..6d85370 100644 (file)
@@ -73,7 +73,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
        };
index 42cd113..8706497 100644 (file)
@@ -43,7 +43,7 @@
                         <1300000 0x1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index f1f9dbe..d2ae47b 100644 (file)
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 WIFI_EN */
        };
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189: sdio_wifi@1 {
+       rtl8189: wifi@1 {
                reg = <1>;
        };
 };
index 305b34a..6a4316a 100644 (file)
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189ftv: sdio_wifi@1 {
+       rtl8189ftv: wifi@1 {
                reg = <1>;
        };
 };
index babf4cf..8a49b33 100644 (file)
@@ -63,7 +63,7 @@
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189ftv: sdio_wifi@1 {
+       rtl8189ftv: wifi@1 {
                reg = <1>;
        };
 };
index 561ea1d..7a6444a 100644 (file)
@@ -92,7 +92,7 @@
                regulator-max-microvolt = <3300000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
                post-power-on-delay-ms = <200>;
index 3d9a152..2725848 100644 (file)
@@ -62,7 +62,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                /*
                 * Q8 boards use various PL# pins as wifi-en. On other boards
@@ -94,7 +94,7 @@
        non-removable;
        status = "okay";
 
-       sdio_wifi: sdio_wifi@1 {
+       sdio_wifi: wifi@1 {
                reg = <1>;
        };
 };
index bc39468..f4bf46b 100644 (file)
@@ -88,7 +88,7 @@
                regulator-max-microvolt = <5000000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 95543a9..7506752 100644 (file)
@@ -75,7 +75,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 6 GPIO_ACTIVE_LOW>; /* PL06 */
        };
index 28197bb..cd2351a 100644 (file)
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
                clocks = <&ccu CLK_OUTA>;
index 0bd1336..15b0b4d 100644 (file)
@@ -62,7 +62,7 @@
                regulator-max-microvolt = <5000000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 1 10 GPIO_ACTIVE_LOW>; // PB10 WIFI_EN
                clocks = <&ccu CLK_OUTA>;
index 20966e9..e0d4404 100644 (file)
@@ -51,7 +51,7 @@
                startup-delay-us = <200000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 1 3 GPIO_ACTIVE_LOW>; /* PB3 WIFI-RST */
                post-power-on-delay-ms = <200>;
index e8a0447..9e13c2a 100644 (file)
@@ -98,7 +98,7 @@
                #size-cells = <1>;
                ranges;
 
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
                        clock-output-names = "osc24M";
                };
 
-               osc32k: osc32k_clk {
+               osc32k: osc32k-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <32768>;
index 4348710..6575ef2 100644 (file)
@@ -94,7 +94,7 @@
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 6 10 GPIO_ACTIVE_LOW>; /* PG10 WIFI_EN */
                clocks = <&ccu CLK_OUTA>;
index 7d3f330..a1ae092 100644 (file)
                 * The actual TX clock rate is not controlled by the
                 * gmac_tx clock.
                 */
-               mii_phy_tx_clk: mii_phy_tx_clk {
+               mii_phy_tx_clk: mii-phy-tx-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <25000000>;
                        clock-output-names = "mii_phy_tx";
                };
 
-               gmac_int_tx_clk: gmac_int_tx_clk {
+               gmac_int_tx_clk: gmac-int-tx-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <125000000>;
index 1d1d127..873817d 100644 (file)
@@ -98,7 +98,7 @@
                gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 60804b0..be5f552 100644 (file)
@@ -18,7 +18,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 7 GPIO_ACTIVE_LOW>; /* PC7 */
                post-power-on-delay-ms = <200>;
index ade1cd5..7df6051 100644 (file)
@@ -83,7 +83,7 @@
                #size-cells = <1>;
                ranges;
 
-               osc24M: osc24M_clk {
+               osc24M: osc24M-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <24000000>;
@@ -91,7 +91,7 @@
                        clock-output-names = "osc24M";
                };
 
-               osc32k: osc32k_clk {
+               osc32k: osc32k-clk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
                        clock-frequency = <32768>;
index 4554abf..9aa2de3 100644 (file)
 
        /* IPB PMIC */
        lm25066@40 {
-               compatible = "lm25066";
+               compatible = "ti,lm25066";
                reg = <0x40>;
                shunt-resistor-micro-ohms = <1000>;
        };
 
        /* 12VSB PMIC */
        lm25066@41 {
-               compatible = "lm25066";
+               compatible = "ti,lm25066";
                reg = <0x41>;
                shunt-resistor-micro-ohms = <10000>;
        };
index 6600f7e..e830fec 100644 (file)
@@ -14,7 +14,7 @@
 
 #define EFUSE(hexaddr, num)                                                    \
        efuse@##hexaddr {                                                       \
-               compatible = "lm25066";                                         \
+               compatible = "ti,lm25066";                                      \
                reg = <0x##hexaddr>;                                            \
                shunt-resistor-micro-ohms = <675>;                              \
                regulators {                                                    \
index 7099d95..5881bcc 100644 (file)
@@ -64,6 +64,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
        bcm47081-luxul-xap-1410.dtb \
        bcm47081-luxul-xwr-1200.dtb \
        bcm47081-tplink-archer-c5-v2.dtb \
+       bcm4709-asus-rt-ac3200.dtb \
        bcm4709-asus-rt-ac87u.dtb \
        bcm4709-buffalo-wxr-1900dhp.dtb \
        bcm4709-linksys-ea9200.dtb \
@@ -71,6 +72,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
        bcm4709-netgear-r8000.dtb \
        bcm4709-tplink-archer-c9-v1.dtb \
        bcm47094-asus-rt-ac3100.dtb \
+       bcm47094-asus-rt-ac5300.dtb \
        bcm47094-asus-rt-ac88u.dtb \
        bcm47094-dlink-dir-885l.dtb \
        bcm47094-dlink-dir-890l.dtb \
index d5f8823..353bb50 100644 (file)
@@ -5,6 +5,7 @@
 #include "bcm283x-rpi-led-deprecated.dtsi"
 #include "bcm283x-rpi-usb-peripheral.dtsi"
 #include "bcm283x-rpi-wifi-bt.dtsi"
+#include <dt-bindings/leds/common.h>
 
 / {
        compatible = "raspberrypi,4-model-b", "brcm,bcm2711";
                stdout-path = "serial1:115200n8";
        };
 
+       cam1_reg: regulator-cam1 {
+               compatible = "regulator-fixed";
+               regulator-name = "cam1-reg";
+               enable-active-high;
+               gpio = <&expgpio 5 GPIO_ACTIVE_HIGH>;
+       };
+
        sd_io_1v8_reg: regulator-sd-io-1v8 {
                compatible = "regulator-gpio";
                regulator-name = "vdd-sd-io";
        phy1: ethernet-phy@1 {
                /* No PHY interrupt */
                reg = <0x1>;
+
+               leds {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* LED1 */
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_GREEN>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+
+                       /* LED2 */
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_AMBER>;
+                               function = LED_FUNCTION_LAN;
+                               default-state = "keep";
+                       };
+               };
        };
 };
 
index 5a2869a..ca9be91 100644 (file)
@@ -30,6 +30,7 @@
 
 &genet_mdio {
        clock-frequency = <1950000>;
+       /delete-node/ leds;
 };
 
 &led_pwr {
index d7ba02f..6bc77dd 100644 (file)
@@ -1,5 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /dts-v1/;
+#include <dt-bindings/leds/common.h>
 #include "bcm2711-rpi-cm4.dtsi"
 #include "bcm283x-rpi-led-deprecated.dtsi"
 #include "bcm283x-rpi-usb-host.dtsi"
        status = "okay";
 };
 
+&i2c0_1 {
+       rtc@51 {
+               /* Attention: An alarm resets the machine */
+               compatible = "nxp,pcf85063a";
+               reg = <0x51>;
+               quartz-load-femtofarads = <7000>;
+       };
+};
+
+&phy1 {
+       leds {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               /* LED2 */
+               led@1 {
+                       reg = <1>;
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+
+               /* LED3 */
+               led@2 {
+                       reg = <2>;
+                       color = <LED_COLOR_ID_AMBER>;
+                       function = LED_FUNCTION_LAN;
+                       default-state = "keep";
+               };
+       };
+};
+
 &led_act {
        gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
 };
index d233a19..6bf4241 100644 (file)
                pcie0 = &pcie0;
                blconfig = &blconfig;
        };
-};
 
-&firmware {
-       firmware_clocks: clocks {
-               compatible = "raspberrypi,firmware-clocks";
-               #clock-cells = <1>;
+       i2c0mux: i2c-mux0 {
+               compatible = "i2c-mux-pinctrl";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               i2c-parent = <&i2c0>;
+
+               pinctrl-names = "i2c0", "i2c0-vc";
+               pinctrl-0 = <&i2c0_gpio0>;
+               pinctrl-1 = <&i2c0_gpio44>;
+
+               i2c0_0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c0_1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
        };
+};
 
+&firmware {
        expgpio: gpio {
                compatible = "raspberrypi,firmware-gpio";
                gpio-controller;
        clocks = <&firmware_clocks 4>;
 };
 
+&i2c0 {
+       /delete-property/ pinctrl-names;
+       /delete-property/ pinctrl-0;
+};
+
 &rmem {
        /*
         * RPi4's co-processor will copy the board's bootloader configuration
index 22c7f15..e4e42af 100644 (file)
                };
        };
 
-       arm-pmu {
-               compatible = "arm,cortex-a72-pmu", "arm,armv8-pmuv3";
+       pmu {
+               compatible = "arm,cortex-a72-pmu";
                interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
                        <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
                        <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
        #address-cells = <2>;
 };
 
+&csi0 {
+       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+};
+
+&csi1 {
+       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+};
+
 &cma {
        /*
         * arm64 reserves the CMA by default somewhere in ZONE_DMA32,
index 4e7b4a5..8b3c21d 100644 (file)
@@ -7,13 +7,6 @@
 
 #include <dt-bindings/power/raspberrypi-power.h>
 
-&firmware {
-       firmware_clocks: clocks {
-               compatible = "raspberrypi,firmware-clocks";
-               #clock-cells = <1>;
-       };
-};
-
 &hdmi {
        clocks = <&firmware_clocks 9>,
                 <&firmware_clocks 13>;
index f0acc93..e9bf41b 100644 (file)
@@ -4,11 +4,12 @@
        soc {
                firmware: firmware {
                        compatible = "raspberrypi,bcm2835-firmware", "simple-mfd";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-
                        mboxes = <&mailbox>;
-                       dma-ranges;
+
+                       firmware_clocks: clocks {
+                               compatible = "raspberrypi,firmware-clocks";
+                               #clock-cells = <1>;
+                       };
                };
 
                power: power {
        };
 };
 
+&csi0 {
+       clocks = <&clocks BCM2835_CLOCK_CAM0>,
+                <&firmware_clocks 4>;
+       clock-names = "lp", "vpu";
+       power-domains = <&power RPI_POWER_DOMAIN_UNICAM0>;
+};
+
+&csi1 {
+       clocks = <&clocks BCM2835_CLOCK_CAM1>,
+                <&firmware_clocks 4>;
+       clock-names = "lp", "vpu";
+       power-domains = <&power RPI_POWER_DOMAIN_UNICAM1>;
+};
+
 &gpio {
        gpioout: gpioout {
                brcm,pins = <6>;
index 2ca8a25..69b0919 100644 (file)
                        status = "disabled";
                };
 
+               csi0: csi@7e800000 {
+                       compatible = "brcm,bcm2835-unicam";
+                       reg = <0x7e800000 0x800>,
+                             <0x7e802000 0x4>;
+                       reg-names = "unicam", "cmi";
+                       interrupts = <2 6>;
+                       brcm,num-data-lanes = <2>;
+                       status = "disabled";
+                       port {
+                       };
+               };
+
+               csi1: csi@7e801000 {
+                       compatible = "brcm,bcm2835-unicam";
+                       reg = <0x7e801000 0x800>,
+                             <0x7e802004 0x4>;
+                       reg-names = "unicam", "cmi";
+                       interrupts = <2 7>;
+                       brcm,num-data-lanes = <4>;
+                       status = "disabled";
+                       port {
+                       };
+               };
+
                i2c1: i2c@7e804000 {
                        compatible = "brcm,bcm2835-i2c";
                        reg = <0x7e804000 0x1000>;
diff --git a/arch/arm/boot/dts/broadcom/bcm4709-asus-rt-ac3200.dts b/arch/arm/boot/dts/broadcom/bcm4709-asus-rt-ac3200.dts
new file mode 100644 (file)
index 0000000..53cb0c5
--- /dev/null
@@ -0,0 +1,150 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Author: Tom Brautaset <tbrautaset@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm4709.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       compatible = "asus,rt-ac3200", "brcm,bcm4709", "brcm,bcm4708";
+       model = "ASUS RT-AC3200";
+
+       memory@0 {
+               reg = <0x00000000 0x08000000>,
+                     <0x88000000 0x08000000>;
+               device_type = "memory";
+       };
+
+       nvram@1c080000 {
+               compatible = "brcm,nvram";
+               reg = <0x1c080000 0x00180000>;
+
+               et0macaddr: et0macaddr {
+                       #nvmem-cell-cells = <1>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-reset {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wifi {
+                       label = "Wi-Fi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-power {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led-wan-red {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-wps {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_WPS;
+                       gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gmac0 {
+       nvmem-cells = <&et0macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+       nvmem-cells = <&et0macaddr 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+       nvmem-cells = <&et0macaddr 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&nandcs {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       reg = <0x00000000 0x00080000>;
+                       label = "boot";
+                       read-only;
+               };
+
+               partition@80000 {
+                       reg = <0x00080000 0x00180000>;
+                       label = "nvram";
+               };
+
+               partition@200000 {
+                       compatible = "brcm,trx";
+                       reg = <0x00200000 0x07e00000>;
+                       label = "firmware";
+               };
+       };
+};
+
+&srab {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       label = "wan";
+               };
+
+               port@1 {
+                       label = "lan1";
+               };
+
+               port@2 {
+                       label = "lan2";
+               };
+
+               port@3 {
+                       label = "lan3";
+               };
+
+               port@4 {
+                       label = "lan4";
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3_phy {
+       status = "okay";
+};
index 5f08930..1655ac9 100644 (file)
 
        nvram@1c080000 {
                et0macaddr: et0macaddr {
+                       #nvmem-cell-cells = <1>;
                };
        };
 };
 
 &gmac0 {
-       nvmem-cells = <&et0macaddr>;
+       nvmem-cells = <&et0macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+       nvmem-cells = <&et0macaddr 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+       nvmem-cells = <&et0macaddr 2>;
        nvmem-cell-names = "mac-address";
 };
index 09cefce..2cfaaab 100644 (file)
@@ -6,15 +6,13 @@
 #include "bcm47094.dtsi"
 #include "bcm5301x-nand-cs0-bch8.dtsi"
 
-/ {
-       chosen {
-               bootargs = "earlycon";
-       };
+#include <dt-bindings/leds/common.h>
 
+/ {
        memory@0 {
-               device_type = "memory";
                reg = <0x00000000 0x08000000>,
                      <0x88000000 0x18000000>;
+               device_type = "memory";
        };
 
        nvram@1c080000 {
                reg = <0x1c080000 0x00180000>;
        };
 
-       leds {
-               compatible = "gpio-leds";
+       gpio-keys {
+               compatible = "gpio-keys";
 
-               led-power {
-                       label = "white:power";
-                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
-                       linux,default-trigger = "default-on";
+               button-led {
+                       label = "Backlight";
+                       linux,code = <KEY_BRIGHTNESS_ZERO>;
+                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
                };
 
-               led-wan-red {
-                       label = "red:wan";
-                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               button-reset {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wifi {
+                       label = "Wi-Fi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
                };
 
+               button-wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
                led-lan {
-                       label = "white:lan";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_LAN;
                        gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
                };
 
+               led-power {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
                led-usb2 {
-                       label = "white:usb2";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_USB;
+                       function-enumerator = <1>;
                        gpios = <&chipcommon 16 GPIO_ACTIVE_LOW>;
                        trigger-sources = <&ehci_port2>;
                        linux,default-trigger = "usbport";
                };
 
                led-usb3 {
-                       label = "white:usb3";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_USB;
+                       function-enumerator = <2>;
                        gpios = <&chipcommon 17 GPIO_ACTIVE_LOW>;
                        trigger-sources = <&ehci_port1>, <&xhci_port1>;
                        linux,default-trigger = "usbport";
                };
 
+               led-wan-red {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
                led-wps {
-                       label = "white:wps";
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_WPS;
                        gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
                };
        };
+};
 
-       gpio-keys {
-               compatible = "gpio-keys";
-
-               button-wps {
-                       label = "WPS";
-                       linux,code = <KEY_WPS_BUTTON>;
-                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
-               };
+&nandcs {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
 
-               button-reset {
-                       label = "Reset";
-                       linux,code = <KEY_RESTART>;
-                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               partition@0 {
+                       reg = <0x00000000 0x00080000>;
+                       label = "boot";
+                       read-only;
                };
 
-               button-wifi {
-                       label = "Wi-Fi";
-                       linux,code = <KEY_RFKILL>;
-                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+               partition@80000 {
+                       reg = <0x00080000 0x00180000>;
+                       label = "nvram";
                };
 
-               button-led {
-                       label = "Backlight";
-                       linux,code = <KEY_BRIGHTNESS_ZERO>;
-                       gpios = <&chipcommon 4 GPIO_ACTIVE_LOW>;
+               partition@200000 {
+                       compatible = "brcm,trx";
+                       reg = <0x00200000 0x07e00000>;
+                       label = "firmware";
                };
        };
 };
 
 &srab {
-       compatible = "brcm,bcm53012-srab", "brcm,bcm5301x-srab";
        status = "okay";
 
        ports {
 &usb3_phy {
        status = "okay";
 };
-
-&nandcs {
-       partitions {
-               compatible = "fixed-partitions";
-               #address-cells = <1>;
-               #size-cells = <1>;
-
-               partition@0 {
-                       label = "boot";
-                       reg = <0x00000000 0x00080000>;
-                       read-only;
-               };
-
-               partition@80000 {
-                       label = "nvram";
-                       reg = <0x00080000 0x00180000>;
-               };
-
-               partition@200000 {
-                       label = "firmware";
-                       reg = <0x00200000 0x07e00000>;
-                       compatible = "brcm,trx";
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/broadcom/bcm47094-asus-rt-ac5300.dts b/arch/arm/boot/dts/broadcom/bcm47094-asus-rt-ac5300.dts
new file mode 100644 (file)
index 0000000..6c666dc
--- /dev/null
@@ -0,0 +1,156 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Author: Tom Brautaset <tbrautaset@gmail.com>
+ */
+
+/dts-v1/;
+
+#include "bcm47094.dtsi"
+#include "bcm5301x-nand-cs0-bch8.dtsi"
+
+#include <dt-bindings/leds/common.h>
+
+/ {
+       compatible = "asus,rt-ac5300", "brcm,bcm47094", "brcm,bcm4708";
+       model = "ASUS RT-AC5300";
+
+       memory@0 {
+               reg = <0x00000000 0x08000000>,
+                     <0x88000000 0x18000000>;
+               device_type = "memory";
+       };
+
+       nvram@1c080000 {
+               compatible = "brcm,nvram";
+               reg = <0x1c080000 0x00180000>;
+
+               et1macaddr: et1macaddr {
+                       #nvmem-cell-cells = <1>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               button-reset {
+                       label = "Reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wifi {
+                       label = "Wi-Fi";
+                       linux,code = <KEY_RFKILL>;
+                       gpios = <&chipcommon 20 GPIO_ACTIVE_LOW>;
+               };
+
+               button-wps {
+                       label = "WPS";
+                       linux,code = <KEY_WPS_BUTTON>;
+                       gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-lan {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_LAN;
+                       gpios = <&chipcommon 21 GPIO_ACTIVE_LOW>;
+               };
+
+               led-power {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_POWER;
+                       gpios = <&chipcommon 3 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "default-on";
+               };
+
+               led-wan-red {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_WAN;
+                       gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
+               };
+
+               led-wps {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_WPS;
+                       gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&gmac0 {
+       nvmem-cells = <&et1macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac1 {
+       nvmem-cells = <&et1macaddr 1>;
+       nvmem-cell-names = "mac-address";
+};
+
+&gmac2 {
+       nvmem-cells = <&et1macaddr 2>;
+       nvmem-cell-names = "mac-address";
+};
+
+&nandcs {
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       reg = <0x00000000 0x00080000>;
+                       label = "boot";
+                       read-only;
+               };
+
+               partition@80000 {
+                       reg = <0x00080000 0x00180000>;
+                       label = "nvram";
+               };
+
+               partition@200000 {
+                       compatible = "brcm,trx";
+                       reg = <0x00200000 0x07e00000>;
+                       label = "firmware";
+               };
+       };
+};
+
+&srab {
+       status = "okay";
+
+       ports {
+               port@0 {
+                       label = "lan4";
+               };
+
+               port@1 {
+                       label = "lan3";
+               };
+
+               port@2 {
+                       label = "lan2";
+               };
+
+               port@3 {
+                       label = "lan1";
+               };
+
+               port@4 {
+                       label = "wan";
+               };
+       };
+};
+
+&usb2 {
+       vcc-gpio = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
+};
+
+&usb3_phy {
+       status = "okay";
+};
index fd344b5..a197f44 100644 (file)
 
        nvram@1c080000 {
                et1macaddr: et1macaddr {
+                       #nvmem-cell-cells = <1>;
                };
        };
 
        switch {
                compatible = "realtek,rtl8365mb";
-               /* 7 = MDIO (has input reads), 6 = MDC (clock, output only) */
                mdc-gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
                mdio-gpios = <&chipcommon 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&chipcommon 10 GPIO_ACTIVE_LOW>;
                realtek,disable-leds;
                dsa,member = <1 0>;
 
+               mdio {
+                       compatible = "realtek,smi-mdio";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       ethphy0: ethernet-phy@0 {
+                               reg = <0>;
+                       };
+
+                       ethphy1: ethernet-phy@1 {
+                               reg = <1>;
+                       };
+
+                       ethphy2: ethernet-phy@2 {
+                               reg = <2>;
+                       };
+
+                       ethphy3: ethernet-phy@3 {
+                               reg = <3>;
+                       };
+               };
+
                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
                                };
                        };
                };
+       };
+};
 
-               mdio {
-                       compatible = "realtek,smi-mdio";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       ethphy0: ethernet-phy@0 {
-                               reg = <0>;
-                       };
-
-                       ethphy1: ethernet-phy@1 {
-                               reg = <1>;
-                       };
+&gmac0 {
+       status = "disabled";
+};
 
-                       ethphy2: ethernet-phy@2 {
-                               reg = <2>;
-                       };
+&gmac1 {
+       nvmem-cells = <&et1macaddr 0>;
+       nvmem-cell-names = "mac-address";
+};
 
-                       ethphy3: ethernet-phy@3 {
-                               reg = <3>;
-                       };
-               };
-       };
+&gmac2 {
+       nvmem-cells = <&et1macaddr 1>;
+       nvmem-cell-names = "mac-address";
 };
 
 &srab {
                };
        };
 };
-
-&gmac0 {
-       status = "disabled";
-};
-
-&gmac1 {
-       nvmem-cells = <&et1macaddr>;
-       nvmem-cell-names = "mac-address";
-};
index 8c1d5c9..2ff7be8 100644 (file)
 
        tegra_ac97: ac97@70002000 {
                status = "okay";
-               nvidia,codec-reset-gpio =
+               nvidia,codec-reset-gpios =
                        <&gpio TEGRA_GPIO(V, 0) GPIO_ACTIVE_LOW>;
-               nvidia,codec-sync-gpio =
+               nvidia,codec-sync-gpios =
                        <&gpio TEGRA_GPIO(P, 0) GPIO_ACTIVE_HIGH>;
        };
 
index afb922b..1408e1e 100644 (file)
                                        0x00000000 0x00000000 0x00000000 0x00000000>;
                        };
                };
+
+               emc-tables@1 {
+                       nvidia,ram-code = <0x1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+
+                       emc-table@166500 {
+                               reg = <166500>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <166500>;
+                               nvidia,emc-registers = <0x0000000a 0x00000016
+                                       0x00000008 0x00000003 0x00000004 0x00000004
+                                       0x00000002 0x0000000c 0x00000003 0x00000003
+                                       0x00000002 0x00000001 0x00000004 0x00000005
+                                       0x00000004 0x00000009 0x0000000d 0x000004df
+                                       0x00000000 0x00000003 0x00000003 0x00000003
+                                       0x00000003 0x00000001 0x0000000a 0x000000c8
+                                       0x00000003 0x00000006 0x00000004 0x00000008
+                                       0x00000002 0x00000000 0x00000000 0x00000002
+                                       0x00000000 0x00000000 0x00000083 0xe03b0323
+                                       0x007fe010 0x00001414 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+
+                       emc-table@333000 {
+                               reg = <333000>;
+                               compatible = "nvidia,tegra20-emc-table";
+                               clock-frequency = <333000>;
+                               nvidia,emc-registers = <0x00000018 0x00000033
+                                       0x00000012 0x00000004 0x00000004 0x00000005
+                                       0x00000003 0x0000000c 0x00000006 0x00000006
+                                       0x00000003 0x00000001 0x00000004 0x00000005
+                                       0x00000004 0x00000009 0x0000000d 0x00000bff
+                                       0x00000000 0x00000003 0x00000003 0x00000006
+                                       0x00000006 0x00000001 0x00000011 0x000000c8
+                                       0x00000003 0x0000000e 0x00000007 0x00000008
+                                       0x00000002 0x00000000 0x00000000 0x00000002
+                                       0x00000000 0x00000000 0x00000083 0xf0440303
+                                       0x007fe010 0x00001414 0x00000000 0x00000000
+                                       0x00000000 0x00000000 0x00000000 0x00000000>;
+                       };
+               };
        };
 
        usb@c5000000 {
index 4052cad..231c0d7 100644 (file)
@@ -349,12 +349,15 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
        imx6ull-phytec-segin-lc-rdk-nand.dtb \
        imx6ull-phytec-tauri-emmc.dtb \
        imx6ull-phytec-tauri-nand.dtb \
+       imx6ull-seeed-npi-dev-board-emmc.dtb \
+       imx6ull-seeed-npi-dev-board-nand.dtb \
        imx6ull-tarragon-master.dtb \
        imx6ull-tarragon-micro.dtb \
        imx6ull-tarragon-slave.dtb \
        imx6ull-tarragon-slavext.dtb \
        imx6ull-tqma6ull2-mba6ulx.dtb \
        imx6ull-tqma6ull2l-mba6ulx.dtb \
+       imx6ull-uti260b.dtb \
        imx6ulz-14x14-evk.dtb \
        imx6ulz-bsh-smm-m2.dtb
 dtb-$(CONFIG_SOC_IMX7D) += \
index dd03e38..13756d3 100644 (file)
                compatible = "ricoh,rc5t619";
                reg = <0x32>;
                interrupt-parent = <&gpio5>;
-               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                system-power-controller;
 
                regulators {
index 4e1bf08..dcc3c9d 100644 (file)
                compatible = "ricoh,rc5t619";
                reg = <0x32>;
                interrupt-parent = <&gpio4>;
-               interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <19 IRQ_TYPE_LEVEL_LOW>;
                system-power-controller;
 
                regulators {
index abc9233..31b3fc9 100644 (file)
                device_type = "memory";
                reg = <0xa0000000 0x08000000>; /* 128MB */
        };
+
+       usbotgphy: usbotgphy {
+               compatible = "usb-nop-xceiv";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbotgphy>;
+               reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
+               #phy-cells = <0>;
+       };
+
+       usbh2phy: usbh2phy {
+               compatible = "usb-nop-xceiv";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_usbh2phy>;
+               reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;
+               #phy-cells = <0>;
+       };
 };
 
 &cspi1 {
                                MX27_PAD_NFWE_B__NFWE_B 0x0
                        >;
                };
+
+               pinctrl_usbotgphy: usbotgphygrp {
+                       fsl,pins = <
+                               MX27_PAD_USBH1_RCV__GPIO2_25            0x1 /* reset gpio */
+                       >;
+               };
+
+               pinctrl_usbotg: usbotggrp {
+                       fsl,pins = <
+                               MX27_PAD_USBOTG_CLK__USBOTG_CLK         0x0
+                               MX27_PAD_USBOTG_DIR__USBOTG_DIR         0x0
+                               MX27_PAD_USBOTG_NXT__USBOTG_NXT         0x0
+                               MX27_PAD_USBOTG_STP__USBOTG_STP         0x0
+                               MX27_PAD_USBOTG_DATA0__USBOTG_DATA0     0x0
+                               MX27_PAD_USBOTG_DATA1__USBOTG_DATA1     0x0
+                               MX27_PAD_USBOTG_DATA2__USBOTG_DATA2     0x0
+                               MX27_PAD_USBOTG_DATA3__USBOTG_DATA3     0x0
+                               MX27_PAD_USBOTG_DATA4__USBOTG_DATA4     0x0
+                               MX27_PAD_USBOTG_DATA5__USBOTG_DATA5     0x0
+                               MX27_PAD_USBOTG_DATA6__USBOTG_DATA6     0x0
+                               MX27_PAD_USBOTG_DATA7__USBOTG_DATA7     0x0
+                       >;
+               };
+
+               pinctrl_usbh2phy: usbh2phygrp {
+                       fsl,pins = <
+                               MX27_PAD_USBH1_SUSP__GPIO2_22           0x0 /* reset gpio */
+                       >;
+               };
+
+               pinctrl_usbh2: usbh2grp {
+                       fsl,pins = <
+                               MX27_PAD_USBH2_CLK__USBH2_CLK           0x0
+                               MX27_PAD_USBH2_DIR__USBH2_DIR           0x0
+                               MX27_PAD_USBH2_NXT__USBH2_NXT           0x0
+                               MX27_PAD_USBH2_STP__USBH2_STP           0x0
+                               MX27_PAD_CSPI2_SCLK__USBH2_DATA0        0x0
+                               MX27_PAD_CSPI2_MOSI__USBH2_DATA1        0x0
+                               MX27_PAD_CSPI2_MISO__USBH2_DATA2        0x0
+                               MX27_PAD_CSPI2_SS1__USBH2_DATA3         0x0
+                               MX27_PAD_CSPI2_SS2__USBH2_DATA4         0x0
+                               MX27_PAD_CSPI1_SS2__USBH2_DATA5         0x0
+                               MX27_PAD_CSPI2_SS0__USBH2_DATA6         0x0
+                               MX27_PAD_USBH2_DATA7__USBH2_DATA7       0x0
+                       >;
+               };
        };
 };
 
        nand-on-flash-bbt;
        status = "okay";
 };
+
+&usbotg {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbotg>;
+       phy_type = "ulpi";
+       phys = <&usbotgphy>;
+       status = "okay";
+};
+
+&usbh2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usbh2>;
+       phy_type = "ulpi";
+       phys = <&usbh2phy>;
+       status = "okay";
+};
index f740872..2bd0761 100644 (file)
@@ -45,7 +45,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 78770>;
+               pwms = <&pwm1 0 78770 0>;
                brightness-levels = <0 150 200 255>;
                default-brightness-level = <1>;
                power-supply = <&backlight_reg>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm_backlight>;
        status = "okay";
index 0e7f071..f6f1163 100644 (file)
@@ -13,7 +13,7 @@
 
        backlight_lcd: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                power-supply = <&reg_backlight>;
                brightness-levels = <0 24 28 32 36
                                     40 44 48 52 56
index 4508f34..ae5f87b 100644 (file)
@@ -13,7 +13,7 @@
                compatible = "pwm-beeper";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_buzzer>;
-               pwms = <&pwm1 0 500000>;
+               pwms = <&pwm1 0 500000 0>;
        };
 
        gpio-buttons {
        >;
 };
 
-&pwm1 {
-       #pwm-cells = <2>;
-};
-
-&pwm2 {
-       #pwm-cells = <2>;
-};
-
 &uart1 {
        status = "okay";
 };
index c323b4d..1353d98 100644 (file)
@@ -41,7 +41,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 3000>;
+               pwms = <&pwm1 0 3000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                power-supply = <&reg_backlight>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 6a37616..2117de8 100644 (file)
@@ -17,7 +17,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                brightness-levels = <0 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100>;
                default-brightness-level = <10>;
                enable-gpios = <&gpio7 7 0>;
index 70c4a48..e939acc 100644 (file)
 
        pwm_bl: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                brightness-levels = <0 2 5 7 10 12 15 17 20 22 25 28 30 33 35
                                     38 40 43 45 48 51 53 56 58 61 63 66 68 71
                                     73 76 79 81 84 86 89 91 94 96 99 102 104
 
                led-1 {
                        label = "alarm-brightness";
-                       pwms = <&pwm1 0 100000>;
+                       pwms = <&pwm1 0 100000 0>;
                        max-brightness = <255>;
                };
        };
 };
 
 &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";
index 294811b..b2d7271 100644 (file)
        };
 };
 
-&pwm1 {
-       #pwm-cells = <2>;
-};
-
-&pwm2 {
-       #pwm-cells = <2>;
-};
-
 &uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_uart1>;
index cc861a4..a5ac793 100644 (file)
@@ -14,7 +14,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                enable-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
@@ -79,6 +79,5 @@
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
index b6cb788..5a25bdb 100644 (file)
@@ -49,7 +49,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 3000>;
+               pwms = <&pwm3 0 3000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                pinctrl-names = "default";
@@ -69,6 +69,5 @@
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        status = "okay";
 };
index 0289519..72ee236 100644 (file)
@@ -21,7 +21,7 @@
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 25000>; /* 25000ns -> 40kHz */
+               pwms = <&pwm3 0 25000 0>; /* 25000ns -> 40kHz */
                brightness-levels = <0 4 8 16 32 64 128 160 192 224 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index f266f1b..09d9ca0 100644 (file)
@@ -55,7 +55,7 @@
                compatible = "pwm-backlight";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_display>;
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <  0   1   2   3   4   5   6   7   8   9
                                      10  11  12  13  14  15  16  17  18  19
                                      20  21  22  23  24  25  26  27  28  29
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 0264880..d3f14b4 100644 (file)
@@ -36,7 +36,7 @@
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 200000>;
+               pwms = <&pwm1 0 200000 0>;
                brightness-levels = <0 61 499 1706 4079 8022 13938 22237 33328 47623 65535>;
                num-interpolated-steps = <10>;
                default-brightness-level = <60>;
                        color = <LED_COLOR_ID_RED>;
                        max-brightness = <248>;
                        default-state = "off";
-                       pwms = <&pwm2 0 500000>;
+                       pwms = <&pwm2 0 500000 0>;
                };
 
                led_white: led-1 {
                        color = <LED_COLOR_ID_WHITE>;
                        max-brightness = <248>;
                        default-state = "off";
-                       pwms = <&pwm3 0 500000>;
+                       pwms = <&pwm3 0 500000 0>;
                        linux,default-trigger = "heartbeat";
                };
        };
 };
 
 &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";
index 091903f..c425d42 100644 (file)
@@ -15,7 +15,7 @@
 / {
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 255>;
                num-interpolated-steps = <255>;
                default-brightness-level = <250>;
@@ -23,7 +23,7 @@
 
        beeper {
                compatible = "pwm-beeper";
-               pwms = <&pwm2 0 500000>;
+               pwms = <&pwm2 0 500000 0>;
        };
 
        lcd_display: display {
 };
 
 &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";
index a7d5a68..d392b5b 100644 (file)
@@ -67,7 +67,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 10000000>;
+               pwms = <&pwm1 0 10000000 0>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_backlight_novena>;
                power-supply = <&reg_lvds_lcd>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 46c6b96..56b77cc 100644 (file)
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 50000>;
+               pwms = <&pwm1 0 50000 0>;
                brightness-levels = <
                        0  /*1  2  3  4  5  6*/  7  8  9
                        10 11 12 13 14 15 16 17 18 19
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 3508a2c..a7d5693 100644 (file)
@@ -22,7 +22,7 @@
                compatible = "pwm-backlight";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_backlight>;
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 16 64 255>;
                num-interpolated-steps = <16>;
                default-brightness-level = <1>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 2290c12..0225a62 100644 (file)
@@ -18,7 +18,7 @@
 
        backlight_lvds: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 50000>;
+               pwms = <&pwm2 0 50000 0>;
                brightness-levels = <0 4 8 16 32 64 128 248>;
                default-brightness-level = <7>;
                status = "okay";
 };
 
 &pwm2 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 338d292..3a46ade 100644 (file)
@@ -13,7 +13,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 191000>;
+               pwms = <&pwm3 0 191000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <0>;
                power-supply = <&reg_5v>;
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index db1bc51..758eaf9 100644 (file)
@@ -46,7 +46,7 @@
 / {
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                enable-gpios = <&gpio6 31 GPIO_ACTIVE_HIGH>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 1e530d8..761566a 100644 (file)
@@ -64,7 +64,7 @@
                        active-low;
                        label = "imx6:red:front";
                        max-brightness = <248>;
-                       pwms = <&pwm1 0 50000>;
+                       pwms = <&pwm1 0 50000 0>;
                };
        };
 
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 42b2ba2..a308a35 100644 (file)
@@ -66,7 +66,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_lvds_bl>;
                enable-gpios = <&gpio6 9 GPIO_ACTIVE_HIGH>;
-               pwms = <&pwm1 0 50000>;
+               pwms = <&pwm1 0 50000 0>;
                brightness-levels = <
                        0 4 8 16 32 64 80 96 112
                        128 144 160 176 250
@@ -78,7 +78,7 @@
        pwm_fan: pwm-fan {
                compatible = "pwm-fan";
                #cooling-cells = <2>;
-               pwms = <&pwm4 0 50000>;
+               pwms = <&pwm4 0 50000 0>;
                cooling-levels = <0 64 127 191 255>;
                status = "disabled";
        };
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_rgb_bl>;
                enable-gpios = <&gpio6 8 GPIO_ACTIVE_HIGH>;
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <
                        250 176 160 144 128 112
                        96 80 64 48 32 16 8 1
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 535679c..48ffb3e 100644 (file)
@@ -25,7 +25,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 3e1c572..1eae438 100644 (file)
@@ -25,7 +25,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 0ffa035..c2ec857 100644 (file)
@@ -26,7 +26,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default", "state_dio";
        pinctrl-0 = <&pinctrl_pwm4_backlight>;
        pinctrl-1 = <&pinctrl_pwm4_dio>;
index 46cf408..7cee983 100644 (file)
@@ -66,7 +66,7 @@
 
        backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <
                        0  1  2  3  4  5  6  7  8  9
                        10 11 12 13 14 15 16 17 18 19
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index a74cde0..fbc704c 100644 (file)
@@ -56,7 +56,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <
                        0  1  2  3  4  5  6  7  8  9
                        10 11 12 13 14 15 16 17 18 19
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 1e72380..0705062 100644 (file)
@@ -70,7 +70,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index efe1152..9975b6e 100644 (file)
@@ -20,7 +20,7 @@
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 100000>;
+               pwms = <&pwm3 0 100000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
        };
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index 4d2abcd..60aa1e9 100644 (file)
                reg = <1>;
                #address-cells = <1>;
                #size-cells = <0>;
+               vdd-supply = <&reg_mba6_3p3v>;
 
                ethernet@1 {
                        compatible = "usb424,9e00";
 
        pinctrl_hog: hoggrp {
                fsl,pins = <
-                       MX6QDL_PAD_DI0_PIN4__GPIO4_IO20 0x0001b099
-
                        MX6QDL_PAD_ENET_RXD1__GPIO1_IO26 0x0001b099
                        MX6QDL_PAD_ENET_TXD1__GPIO1_IO29 0x0001b099
                        MX6QDL_PAD_ENET_TXD0__GPIO1_IO30 0x0001b099
index f2542d7..a30cf0d 100644 (file)
 
        backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 32a110a..33174fe 100644 (file)
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds1: backlight-lvds1 {
                compatible = "pwm-backlight";
-               pwms = <&pwm2 0 5000000>;
+               pwms = <&pwm2 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &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";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 414196b..8e64314 100644 (file)
@@ -17,7 +17,7 @@
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
@@ -26,7 +26,7 @@
 
        backlight_lvds0: backlight-lvds0 {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index f278b14..1211772 100644 (file)
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
        status = "okay";
index 1ca4d21..0b4c09b 100644 (file)
@@ -15,7 +15,7 @@
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_backlight>;
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                status = "okay";
        };
 
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 68e9718..6656e2e 100644 (file)
        };
 
        sound-spdif {
-               compatible = "fsl,imx-audio-spdif",
-                          "fsl,imx-sabreauto-spdif";
+               compatible = "fsl,imx-sabreauto-spdif",
+                            "fsl,imx-audio-spdif";
                model = "imx-spdif";
                spdif-controller = <&spdif>;
                spdif-in;
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index 84c8a95..9c502bf 100644 (file)
@@ -99,7 +99,7 @@
                #clock-cells = <0>;
                clock-frequency = <22000000>;
                clock-output-names = "mipi_pwm3";
-               pwms = <&pwm3 0 45>; /* 1 / 45 ns = 22 MHz */
+               pwms = <&pwm3 0 45 0>; /* 1 / 45 ns = 22 MHz */
                status = "okay";
        };
 
 
        backlight_lcd: backlight-lcd {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_3p3v>;
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        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";
index 4fe5876..8f4f5fb 100644 (file)
 
        backlight_lvds: backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                status = "okay";
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 02e6d36..6823a63 100644 (file)
@@ -83,7 +83,7 @@
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <4>;
                power-supply = <&reg_3p3v>;
-               pwms = <&pwm1 0 10000>;
+               pwms = <&pwm1 0 10000 0>;
        };
 
        reg_3p3v: regulator-3p3v {
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index d59d5d0..6ab71a7 100644 (file)
 &pwm2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm2>;
-       #pwm-cells = <2>;
        status = "okay";
 };
 
index 647ba5e..14272b4 100644 (file)
                };
        };
 
-       reg_usb_h1_vbus: regulator-usb-h1-vbus {
-               compatible = "regulator-fixed";
-               regulator-name = "usb_h1_vbus";
-               regulator-min-microvolt = <5000000>;
-               regulator-max-microvolt = <5000000>;
-               enable-active-high;
-               startup-delay-us = <2>; /* USB2415 requires a POR of 1 us minimum */
-               gpio = <&gpio7 12 0>;
-       };
-
        reg_panel: regulator-panel {
                compatible = "regulator-fixed";
                regulator-name = "lcd_panel";
 &usbh1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usbh>;
-       vbus-supply = <&reg_usb_h1_vbus>;
-       clocks = <&clks IMX6QDL_CLK_CKO>;
-       status = "disabled";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       usb-port@1 {
+               compatible = "usb424,2514";
+               reg = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               clocks = <&clks IMX6QDL_CLK_CKO>;
+               reset-gpios = <&gpio7 12 GPIO_ACTIVE_LOW>;
+       };
 };
 
 &usbotg {
index 8431b8a..d2200c9 100644 (file)
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6QDL_CLK_ESAI_IPG>,
-                                                <&clks IMX6QDL_CLK_ESAI_MEM>,
                                                 <&clks IMX6QDL_CLK_ESAI_EXTAL>,
                                                 <&clks IMX6QDL_CLK_ESAI_IPG>,
                                                 <&clks IMX6QDL_CLK_SPBA>;
-                                       clock-names = "core", "mem", "extal", "fsys", "spba";
+                                       clock-names = "core", "extal", "fsys", "spba";
                                        dmas = <&sdma 23 21 0>, <&sdma 24 21 0>;
                                        dma-names = "rx", "tx";
                                        status = "disabled";
index 239bc6d..31eee04 100644 (file)
@@ -23,7 +23,7 @@
 
        backlight_display: backlight_display {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
        };
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
 };
 
 &reg_vdd1p1 {
index 5636fb3..03d6965 100644 (file)
                pinctrl-0 = <&pinctrl_zforce>;
                reg = <0x50>;
                interrupt-parent = <&gpio5>;
-               interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
                vdd-supply = <&ldo1_reg>;
                reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
                touchscreen-size-x = <1072>;
                pinctrl-0 = <&pinctrl_ricoh_gpio>;
                reg = <0x32>;
                interrupt-parent = <&gpio5>;
-               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+               interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                system-power-controller;
 
                regulators {
index e3e9b0e..febc2dd 100644 (file)
@@ -26,7 +26,7 @@
 
        backlight_display: backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
-       status = "okay";
 };
 
 &snvs_poweroff {
index 3659fd5..ddeb5b3 100644 (file)
                                clocks = <&clks IMX6SLL_CLK_USBOH3>;
                                fsl,usbphy = <&usbphy1>;
                                fsl,usbmisc = <&usbmisc 0>;
-                               fsl,anatop = <&anatop>;
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
index cd9cbc9..1c1515a 100644 (file)
@@ -18,7 +18,7 @@
 
        backlight-lvds {
                compatible = "pwm-backlight";
-               pwms = <&pwm4 0 5000000>;
+               pwms = <&pwm4 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                power-supply = <&reg_3p3v>;
@@ -83,7 +83,7 @@
        sound {
                compatible = "fsl,imx-audio-sgtl5000";
                model = "imx6sx-nitrogen6sx-sgtl5000";
-               cpu-dai = <&ssi1>;
+               ssi-controller = <&ssi1>;
                audio-codec = <&codec>;
                audio-routing =
                        "MIC_IN", "Mic Jack",
 };
 
 &pwm4 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm4>;
-       status = "okay";
 };
 
 &ssi1 {
index c6e85e4..7d4170c 100644 (file)
@@ -23,7 +23,7 @@
 
        backlight_display: backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
        };
        };
 
        sound-spdif {
-               compatible = "fsl,imx-audio-spdif",
-                          "fsl,imx6sx-sdb-spdif";
+               compatible = "fsl,imx6sx-sdb-spdif",
+                            "fsl,imx-audio-spdif";
                model = "imx-spdif";
                spdif-controller = <&spdif>;
                spdif-out;
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
-       status = "okay";
 };
 
 &snvs_poweroff {
index bfcd8f7..f999eb2 100644 (file)
                led-1 {
                        label = "red";
                        max-brightness = <255>;
-                       pwms = <&pwm6 0 50000>;
+                       pwms = <&pwm6 0 50000 0>;
                };
 
                led-2 {
                        label = "green";
                        max-brightness = <255>;
-                       pwms = <&pwm2 0 50000>;
+                       pwms = <&pwm2 0 50000 0>;
                };
 
                led-3 {
                        label = "blue";
                        max-brightness = <255>;
-                       pwms = <&pwm1 0 50000>;
+                       pwms = <&pwm1 0 50000 0>;
                };
        };
 };
 };
 
 &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";
 };
 
 &pwm6 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm6>;
-       status = "okay";
 };
 
 &reg_arm {
index 0de359d..b386448 100644 (file)
                                };
 
                                esai: esai@2024000 {
-                                       compatible = "fsl,imx6sx-esai", "fsl,imx35-esai";
+                                       compatible = "fsl,imx35-esai";
                                        reg = <0x02024000 0x4000>;
                                        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
                                        clocks = <&clks IMX6SX_CLK_ESAI_IPG>,
-                                                <&clks IMX6SX_CLK_ESAI_MEM>,
                                                 <&clks IMX6SX_CLK_ESAI_EXTAL>,
                                                 <&clks IMX6SX_CLK_ESAI_IPG>,
                                                 <&clks IMX6SX_CLK_SPBA>;
-                                       clock-names = "core", "mem", "extal",
+                                       clock-names = "core", "extal",
                                                      "fsys", "spba";
                                        dmas = <&sdma 23 21 0>,
                                               <&sdma 24 21 0>;
                                clocks = <&clks IMX6SX_CLK_USBOH3>;
                                fsl,usbphy = <&usbphy1>;
                                fsl,usbmisc = <&usbmisc 0>;
-                               fsl,anatop = <&anatop>;
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
                                rx-burst-size-dword = <0x10>;
                                fsl,usbphy = <&usbphynop1>;
                                fsl,usbmisc = <&usbmisc 2>;
                                phy_type = "hsic";
-                               fsl,anatop = <&anatop>;
                                dr_mode = "host";
                                ahb-burst-config = <0x0>;
                                tx-burst-size-dword = <0x10>;
index f10f052..9cfb99a 100644 (file)
@@ -16,7 +16,7 @@
 
        backlight_display: backlight-display {
                compatible = "pwm-backlight";
-               pwms = <&pwm1 0 5000000>;
+               pwms = <&pwm1 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm1 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm1>;
        status = "okay";
index 1762bc4..ed61ae8 100644 (file)
@@ -18,7 +18,7 @@
 
        lcd_backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm5 0 50000>;
+               pwms = <&pwm5 0 50000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm5 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm5>;
        status = "okay";
index 2ca18f3..cdbb8c4 100644 (file)
@@ -21,7 +21,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm8 0 100000>;
+               pwms = <&pwm8 0 100000 0>;
                brightness-levels = < 0  1  2  3  4  5  6  7  8  9
                                     10 11 12 13 14 15 16 17 18 19
                                     20 21 22 23 24 25 26 27 28 29
 };
 
 &pwm8 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
        status = "okay";
index af337f1..be3cacb 100644 (file)
@@ -9,7 +9,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 191000>;
+               pwms = <&pwm3 0 191000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <7>;
                power-supply = <&reg_5v>;
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
index 14fc482..ee86c36 100644 (file)
@@ -20,7 +20,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm8 0 100000>;
+               pwms = <&pwm8 0 100000 0>;
                brightness-levels = < 0  1  2  3  4  5  6  7  8  9
                                     10 11 12 13 14 15 16 17 18 19
                                     20 21 22 23 24 25 26 27 28 29
 };
 
 &pwm8 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
        status = "okay";
index 0c64370..4e8191a 100644 (file)
@@ -14,7 +14,7 @@
 
        backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm7 0 5000000>;
+               pwms = <&pwm7 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
@@ -41,7 +41,6 @@
 };
 
 &pwm7 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm7>;
        status = "okay";
index 33d5f27..d8f7877 100644 (file)
@@ -35,7 +35,7 @@
 
        pwm-beeper {
                compatible = "pwm-beeper";
-               pwms = <&pwm8 0 5000>;
+               pwms = <&pwm8 0 5000 0>;
        };
 
        reg_3v3: regulator-3v3 {
 };
 
 &pwm8 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm8>;
        status = "okay";
index 07dcecb..fe307f4 100644 (file)
@@ -22,7 +22,7 @@
 
        backlight: backlight {
                compatible = "pwm-backlight";
-               pwms = <&pwm3 0 5000000>;
+               pwms = <&pwm3 0 5000000 0>;
                brightness-levels = <0 4 8 16 32 64 128 255>;
                default-brightness-level = <6>;
                status = "okay";
 };
 
 &pwm3 {
-       #pwm-cells = <2>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm3>;
        status = "okay";
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board-emmc.dts b/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board-emmc.dts
new file mode 100644 (file)
index 0000000..cfcd878
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include "imx6ull-seeed-npi.dtsi"
+#include "imx6ull-seeed-npi-dev-board.dtsi"
+
+/ {
+       model = "Seeed NPi iMX6ULL Dev Board with NAND";
+       compatible = "seeed,imx6ull-seeed-npi-emmc", "seeed,imx6ull-seeed-npi", "fsl,imx6ull";
+};
+
+&usdhc2 {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board-nand.dts b/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board-nand.dts
new file mode 100644 (file)
index 0000000..87c9434
--- /dev/null
@@ -0,0 +1,19 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include "imx6ull-seeed-npi.dtsi"
+#include "imx6ull-seeed-npi-dev-board.dtsi"
+
+/ {
+       model = "Seeed NPi iMX6ULL Dev Board with NAND";
+       compatible = "seeed,imx6ull-seeed-npi-nand", "seeed,imx6ull-seeed-npi", "fsl,imx6ull";
+};
+
+&gpmi {
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi-dev-board.dtsi
new file mode 100644 (file)
index 0000000..6bb12e0
--- /dev/null
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       chosen {
+               stdout-path = &uart1;
+       };
+
+       gpio_buttons: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_button>;
+
+               button-0 {
+                       gpios = <&gpio5 1 GPIO_ACTIVE_LOW>;
+                       label = "SW2";
+                       linux,code = <KEY_A>;
+                       wakeup-source;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_leds>;
+
+               led-blue {
+                       gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
+                       label = "LED_B";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+
+               led-green {
+                       gpios = <&gpio4 20 GPIO_ACTIVE_LOW>;
+                       label = "LED_G";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+
+               led-red {
+                       gpios = <&gpio1 4 GPIO_ACTIVE_LOW>;
+                       label = "LED_R";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+
+               led-user {
+                       gpios = <&gpio5 3 GPIO_ACTIVE_LOW>;
+                       label = "User";
+                       linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+       };
+
+       reg_5v_sys: regulator-5v-sys {
+               compatible = "regulator-fixed";
+               regulator-name = "5V_SYS";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       reg_5v: regulator-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+               vin-supply = <&reg_5v_sys>;
+       };
+
+       reg_3v3_in: regulator-3v3-in {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3_IN";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&reg_5v_sys>;
+       };
+
+       reg_3v3: regulator-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               vin-supply = <&reg_3v3_in>;
+       };
+
+       reg_sd1_vmmc: regulator-sd1-vmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "3V3_SD";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_vmmc>;
+               enable-active-high;
+               regulator-always-on;
+               vin-supply = <&reg_3v3>;
+       };
+};
+
+&csi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_csi1>;
+       status = "disabled"; /* LED Blue & Green shared */
+};
+
+&fec1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet1>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy0>;
+       status = "okay";
+};
+
+&fec2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_enet2>;
+       phy-mode = "rmii";
+       phy-handle = <&ethphy1>;
+       status = "okay";
+
+       mdio {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               ethphy0: ethernet-phy@2 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <2>;
+                       micrel,led-mode = <1>;
+                       clocks = <&clks IMX6UL_CLK_ENET_REF>;
+                       clock-names = "rmii-ref";
+               };
+
+               ethphy1: ethernet-phy@1 {
+                       compatible = "ethernet-phy-ieee802.3-c22";
+                       reg = <1>;
+                       micrel,led-mode = <1>;
+                       clocks = <&clks IMX6UL_CLK_ENET2_REF>;
+                       clock-names = "rmii-ref";
+               };
+       };
+};
+
+&lcdif {
+       pinctrl-0 = <&pinctrl_lcdif>;
+       pinctrl-names = "default";
+       status = "disabled";
+};
+
+&reg_dcdc_3v3 {
+       vin-supply = <&reg_3v3_in>;
+};
+
+&sai2 {
+       assigned-clock-rates = <320000000>;
+       assigned-clocks = <&clks IMX6UL_CLK_PLL3_PFD2>;
+       pinctrl-0 = <&pinctrl_sai2>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&snvs_poweroff {
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-0 = <&pinctrl_uart1>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&pinctrl_uart2>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart3 {
+       pinctrl-0 = <&pinctrl_uart3>;
+       uart-has-rtscts;
+       status = "okay";
+};
+
+&uart4 {
+       pinctrl-0 = <&pinctrl_uart4>;
+       status = "okay";
+};
+
+&uart5 {
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb_otg1_id>;
+       dr_mode = "otg";
+       srp-disable;
+       hnp-disable;
+       adp-disable;
+       status = "okay";
+};
+
+&usbotg2 {
+       dr_mode = "host";
+       disable-over-current;
+       status = "okay";
+};
+
+&usdhc1 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc1 &pinctrl_usdhc1_cd>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz &pinctrl_usdhc1_cd>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz &pinctrl_usdhc1_cd>;
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       no-1-8-v;
+       keep-power-in-suspend;
+       wakeup-source;
+       vmmc-supply = <&reg_sd1_vmmc>;
+       status = "okay";
+};
+
+&iomuxc {
+       pinctrl_button: buttongrp {
+               fsl,pins = <
+                       MX6ULL_PAD_SNVS_TAMPER1__GPIO5_IO01     0x0b0b0
+               >;
+       };
+
+       pinctrl_csi1: csi1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK        0x1b088
+                       MX6UL_PAD_CSI_VSYNC__CSI_VSYNC          0x1b088
+                       MX6UL_PAD_CSI_HSYNC__CSI_HSYNC          0x1b088
+                       MX6UL_PAD_CSI_DATA00__CSI_DATA02        0x1b088
+                       MX6UL_PAD_CSI_DATA01__CSI_DATA03        0x1b088
+                       MX6UL_PAD_CSI_DATA02__CSI_DATA04        0x1b088
+                       MX6UL_PAD_CSI_DATA03__CSI_DATA05        0x1b088
+                       MX6UL_PAD_CSI_DATA04__CSI_DATA06        0x1b088
+                       MX6UL_PAD_CSI_DATA05__CSI_DATA07        0x1b088
+                       MX6UL_PAD_CSI_DATA06__CSI_DATA08        0x1b088
+                       MX6UL_PAD_CSI_DATA07__CSI_DATA09        0x1b088
+               >;
+       };
+
+       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_EN__ENET1_TX_EN      0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1  0x4001b031
+               >;
+       };
+
+       pinctrl_enet2: enet2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__ENET2_MDC         0x1b0b0
+                       MX6UL_PAD_GPIO1_IO06__ENET2_MDIO        0x1b0b0
+                       MX6UL_PAD_ENET2_RX_EN__ENET2_RX_EN      0x1b0b0
+                       MX6UL_PAD_ENET2_RX_ER__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      0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA0__ENET2_TDATA00 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_DATA1__ENET2_TDATA01 0x1b0b0
+                       MX6UL_PAD_ENET2_TX_CLK__ENET2_REF_CLK2  0x4001b031
+               >;
+       };
+
+       pinctrl_gpio_leds: ledgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0x0b0b0
+                       MX6UL_PAD_CSI_VSYNC__GPIO4_IO19         0x0b0b0
+                       MX6UL_PAD_CSI_HSYNC__GPIO4_IO20         0x0b0b0
+                       MX6UL_PAD_SNVS_TAMPER3__GPIO5_IO03      0x0b0b0
+               >;
+       };
+
+       pinctrl_lcdif: lcdif-grp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK            0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE      0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC        0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC        0x79
+                       MX6UL_PAD_LCD_RESET__LCDIF_RESET        0x79
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00      0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01      0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02      0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03      0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04      0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05      0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06      0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07      0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08      0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09      0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10      0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11      0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12      0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13      0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14      0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15      0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16      0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17      0x79
+                       MX6UL_PAD_LCD_DATA18__LCDIF_DATA18      0x79
+                       MX6UL_PAD_LCD_DATA19__LCDIF_DATA19      0x79
+                       MX6UL_PAD_LCD_DATA20__LCDIF_DATA20      0x79
+                       MX6UL_PAD_LCD_DATA21__LCDIF_DATA21      0x79
+                       MX6UL_PAD_LCD_DATA22__LCDIF_DATA22      0x79
+                       MX6UL_PAD_LCD_DATA23__LCDIF_DATA23      0x79
+                       MX6UL_PAD_GPIO1_IO08__GPIO1_IO08        0x79
+               >;
+       };
+
+       pinctrl_reg_vmmc: usdhc1regvmmc {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0x17059
+               >;
+       };
+
+       pinctrl_sai2: sai2-grp {
+               fsl,pins = <
+                       MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA        0x130b0
+                       MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK        0x17088
+                       MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC        0x17088
+                       MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA     0x120b0
+               >;
+       };
+
+       pinctrl_uart1: uart1grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART2_TX_DATA__UART2_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART2_RX_DATA__UART2_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART2_CTS_B__UART2_DCE_CTS    0x1b0b1
+                       MX6UL_PAD_UART2_RTS_B__UART2_DCE_RTS    0x1b0b1
+               >;
+       };
+
+       pinctrl_uart3: uart3grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX   0x1b0b1
+                       MX6UL_PAD_UART3_CTS_B__UART3_DCE_CTS    0x1b0b1
+                       MX6UL_PAD_UART3_RTS_B__UART3_DCE_RTS    0x1b0b1
+               >;
+       };
+
+       pinctrl_uart4: uart4grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_uart5: uart5grp {
+               fsl,pin = <
+                       MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX   0x1b0b1
+                       MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX   0x1b0b1
+               >;
+       };
+
+       pinctrl_usb_otg1_id: usbotg1idgrp {
+               fsl,pin = <
+                       MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    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
+               >;
+       };
+
+       pinctrl_usdhc1_100mhz: usdhc1grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100b9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170b9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170b9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170b9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x170b9
+               >;
+       };
+
+       pinctrl_usdhc1_200mhz: usdhc1grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD           0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK           0x100f9
+                       MX6UL_PAD_SD1_DATA0__USDHC1_DATA0       0x170f9
+                       MX6UL_PAD_SD1_DATA1__USDHC1_DATA1       0x170f9
+                       MX6UL_PAD_SD1_DATA2__USDHC1_DATA2       0x170f9
+                       MX6UL_PAD_SD1_DATA3__USDHC1_DATA3       0x170f9
+               >;
+       };
+
+       pinctrl_usdhc1_cd: usdhc1cd {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059
+               >;
+       };
+};
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi.dtsi b/arch/arm/boot/dts/nxp/imx/imx6ull-seeed-npi.dtsi
new file mode 100644 (file)
index 0000000..f5ad6b5
--- /dev/null
@@ -0,0 +1,155 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2024 Linumiz
+ * Author: Parthiban <parthiban@linumiz.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Seeed NPi-iMX6ULL Dev Board";
+       compatible = "seeed,imx6ull-seeed-npi", "fsl,imx6ull";
+
+       reg_dcdc_3v3: regulator-dcdc-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "DCDC_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+       };
+
+       reg_dram_1v35: regulator-dram-1v35 {
+               compatible = "regulator-fixed";
+               regulator-name = "DRAM_1V35";
+               regulator-min-microvolt = <1350000>;
+               regulator-max-microvolt = <1350000>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_3v3>;
+       };
+
+       reg_vdd_arm_soc_in: regulator-vdd-arm-soc-in {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_ARM_SOC_IN";
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_3v3>;
+       };
+
+       reg_dcdc_1v8: regulator-dcdc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "DCDC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_3v3>;
+       };
+
+       reg_sd1_vqmmc: regulator-sd1-vqmmc {
+               compatible = "regulator-fixed";
+               regulator-name = "NVCC_SD";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               gpios = <&gpio1 5 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_vqmmc>;
+               regulator-always-on;
+               vin-supply = <&reg_dcdc_1v8>;
+       };
+};
+
+&gpmi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpmi_nand>;
+       status = "disabled";
+};
+
+&usdhc1 {
+       vqmmc-supply = <&reg_sd1_vqmmc>;
+};
+
+&usdhc2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usdhc2>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
+       bus-width = <8>;
+       non-removable;
+       keep-power-in-suspend;
+       status = "disabled";
+};
+
+&iomuxc {
+       pinctrl_gpmi_nand: gpminandgrp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_DQS__RAWNAND_DQS         0x0b0b1
+                       MX6UL_PAD_NAND_CLE__RAWNAND_CLE         0x0b0b1
+                       MX6UL_PAD_NAND_ALE__RAWNAND_ALE         0x0b0b1
+                       MX6UL_PAD_NAND_WP_B__RAWNAND_WP_B       0x0b0b1
+                       MX6UL_PAD_NAND_READY_B__RAWNAND_READY_B 0x0b000
+                       MX6UL_PAD_NAND_CE0_B__RAWNAND_CE0_B     0x0b0b1
+                       MX6UL_PAD_NAND_CE1_B__RAWNAND_CE1_B     0x0b0b1
+                       MX6UL_PAD_NAND_RE_B__RAWNAND_RE_B       0x0b0b1
+                       MX6UL_PAD_NAND_WE_B__RAWNAND_WE_B       0x0b0b1
+                       MX6UL_PAD_NAND_DATA00__RAWNAND_DATA00   0x0b0b1
+                       MX6UL_PAD_NAND_DATA01__RAWNAND_DATA01   0x0b0b1
+                       MX6UL_PAD_NAND_DATA02__RAWNAND_DATA02   0x0b0b1
+                       MX6UL_PAD_NAND_DATA03__RAWNAND_DATA03   0x0b0b1
+                       MX6UL_PAD_NAND_DATA04__RAWNAND_DATA04   0x0b0b1
+                       MX6UL_PAD_NAND_DATA05__RAWNAND_DATA05   0x0b0b1
+                       MX6UL_PAD_NAND_DATA06__RAWNAND_DATA06   0x0b0b1
+                       MX6UL_PAD_NAND_DATA07__RAWNAND_DATA07   0x0b0b1
+               >;
+       };
+
+       pinctrl_reg_vqmmc: usdhc1regvqmmc {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO05__GPIO1_IO05        0x17059
+               >;
+       };
+
+       pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x10069
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x17059
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x17059
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x17059
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x17059
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x17059
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x17059
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x17059
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x17059
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x17059
+               >;
+       };
+
+       pinctrl_usdhc2_100mhz: usdhc2grp100mhz {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100b9
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170b9
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x170b9
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x170b9
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x170b9
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x170b9
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x170b9
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x170b9
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x170b9
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x170b9
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2grp200mhz {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK         0x100f9
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD         0x170f9
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0     0x170f9
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1     0x170f9
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2     0x170f9
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3     0x170f9
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4     0x170f9
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5     0x170f9
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6     0x170f9
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7     0x170f9
+               >;
+       };
+};
index 67007ce..f9bbd58 100644 (file)
@@ -45,7 +45,7 @@
                interrupts = <19 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
@@ -63,7 +63,7 @@
                interrupts = <9 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
index cee223b..ef06619 100644 (file)
@@ -23,7 +23,7 @@
                interrupts = <19 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
index 7fd53b7..83db65b 100644 (file)
@@ -45,7 +45,7 @@
                interrupts = <19 IRQ_TYPE_EDGE_RISING>;
                spi-cpha;
                spi-cpol;
-               spi-max-frequency = <16000000>;
+               spi-max-frequency = <12000000>;
        };
 };
 
diff --git a/arch/arm/boot/dts/nxp/imx/imx6ull-uti260b.dts b/arch/arm/boot/dts/nxp/imx/imx6ull-uti260b.dts
new file mode 100644 (file)
index 0000000..e4576d5
--- /dev/null
@@ -0,0 +1,566 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+// Copyright (C) 2022-2024 Sebastian Reichel <sre@kernel.org>
+
+/dts-v1/;
+#include "imx6ull.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/clock/imx6ul-clock.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "UNI-T UTi260B Thermal Camera";
+       compatible = "uni-t,uti260b", "fsl,imx6ull";
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x20000000>;
+       };
+
+       panel_backlight: backlight {
+               compatible = "pwm-backlight";
+               brightness-levels = <0 4 8 16 32 64 128 255>;
+               default-brightness-level = <6>;
+               enable-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_backlight_enable>;
+               power-supply = <&reg_vsd>;
+               pwms = <&pwm1 0 50000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               /* generic 26650 battery */
+               device-chemistry = "lithium-ion";
+               charge-full-design-microamp-hours = <5000000>;
+               voltage-max-design-microvolt = <4200000>;
+               voltage-min-design-microvolt = <3300000>;
+       };
+
+       tp5000: charger {
+               compatible = "gpio-charger";
+               charger-type = "usb-sdp";
+               gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_charger_stat1>;
+       };
+
+       fuel-gauge {
+               compatible = "adc-battery";
+               charged-gpios = <&gpio1 2 GPIO_ACTIVE_LOW>;
+               io-channel-names = "voltage";
+               io-channels = <&adc1 7>;
+               monitored-battery = <&battery>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_charger_stat2>;
+               power-supplies = <&tp5000>;
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_gpio_keys>;
+               autorepeat;
+
+               up-key {
+                       label = "Up";
+                       gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_UP>;
+               };
+
+               down-key {
+                       label = "Down";
+                       gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_DOWN>;
+               };
+
+               left-key {
+                       label = "Left";
+                       gpios = <&gpio2 13 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LEFT>;
+               };
+
+               right-key {
+                       label = "Right";
+                       gpios = <&gpio2 10 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RIGHT>;
+               };
+
+               ok-key {
+                       label = "Ok";
+                       gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ENTER>;
+               };
+
+               return-key {
+                       label = "Return";
+                       gpios = <&gpio2 15 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_ESC>;
+               };
+
+               play-key {
+                       label = "Media";
+                       gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_MEDIA>;
+               };
+
+               trigger-key {
+                       label = "Trigger";
+                       gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
+                       linux,code = <BTN_TRIGGER>;
+               };
+
+               power-key {
+                       label = "Power";
+                       gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+               };
+
+               light-key {
+                       label = "Light";
+                       gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_LIGHTS_TOGGLE>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_led_ctrl>;
+
+               led {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_FLASH;
+                       gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
+                       default-state = "off";
+               };
+       };
+
+       poweroff {
+               compatible = "gpio-poweroff";
+               gpios = <&gpio2 4 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_poweroff>;
+       };
+
+       reg_vref: regulator-vref-4v2 {
+               compatible = "regulator-fixed";
+               regulator-name = "VREF_4V2";
+               regulator-min-microvolt = <4200000>;
+               regulator-max-microvolt = <4200000>;
+       };
+
+       reg_vsd: regulator-vsd {
+               compatible = "regulator-fixed";
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&adc1 {
+       #io-channel-cells = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_adc>;
+       vref-supply = <&reg_vref>;
+       status = "okay";
+};
+
+&csi {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_csi>;
+       status = "okay";
+
+       port {
+               parallel_from_gc0308: endpoint {
+                       remote-endpoint = <&gc0308_to_parallel>;
+               };
+       };
+};
+
+&ecspi3 {
+       cs-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_spi3>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "inanbo,t28cp45tn89-v17";
+               reg = <0>;
+               backlight = <&panel_backlight>;
+               power-supply = <&reg_vsd>;
+               spi-cpha;
+               spi-cpol;
+               spi-max-frequency = <1000000>;
+               spi-rx-bus-width = <0>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&display_out>;
+                       };
+               };
+       };
+};
+
+&gpio1 {
+       ir-reset-hog {
+               gpio-hog;
+               gpios = <3 GPIO_ACTIVE_LOW>;
+               line-name = "ir-reset-gpio";
+               output-low;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_ir_reset>;
+       };
+};
+
+&gpio2 {
+       /* configuring this to output-high results in poweroff */
+       power-en-hog {
+               gpio-hog;
+               gpios = <6 GPIO_ACTIVE_HIGH>;
+               line-name = "power-en-gpio";
+               output-low;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_poweroff2>;
+       };
+};
+
+&i2c1 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_i2c1>;
+       status = "okay";
+
+       camera@21 {
+               compatible = "galaxycore,gc0308";
+               reg = <0x21>;
+               clocks = <&clks IMX6UL_CLK_CSI>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&mux_gc0308>;
+               powerdown-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
+               reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               vdd28-supply = <&reg_vsd>;
+
+               port {
+                       gc0308_to_parallel: endpoint {
+                               remote-endpoint = <&parallel_from_gc0308>;
+                               bus-width = <8>;
+                               data-shift = <2>; /* lines 9:2 are used */
+                               hsync-active = <1>; /* active high */
+                               vsync-active = <1>; /* active high */
+                               data-active = <1>; /* active high */
+                               pclk-sample = <1>; /* sample on rising edge */
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_i2c2>;
+       status = "okay";
+
+       rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
+
+&lcdif {
+       assigned-clocks = <&clks IMX6UL_CLK_LCDIF_PRE_SEL>;
+       assigned-clock-parents = <&clks IMX6UL_CLK_PLL5_VIDEO_DIV>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_lcd_data>, <&mux_lcd_ctrl>;
+       status = "okay";
+
+       port {
+               display_out: endpoint {
+                       remote-endpoint = <&panel_in>;
+               };
+       };
+};
+
+&pwm1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_pwm>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_uart>;
+       status = "okay";
+};
+
+&usbotg1 {
+       /* USB-C connector */
+       disable-over-current;
+       dr_mode = "otg";
+       status = "okay";
+};
+
+&usbotg2 {
+       /* thermal sensor */
+       disable-over-current;
+       dr_mode = "host";
+       status = "okay";
+};
+
+&usbphy1 {
+       fsl,tx-d-cal = <106>;
+};
+
+&usbphy2 {
+       fsl,tx-d-cal = <106>;
+};
+
+&usdhc1 {
+       /* MicroSD */
+       cd-gpios = <&gpio1 19 GPIO_ACTIVE_LOW>;
+       keep-power-in-suspend;
+       no-1-8-v;
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&mux_sdhc1>, <&mux_sdhc1_cd>;
+       pinctrl-1 = <&mux_sdhc1_100mhz>, <&mux_sdhc1_cd>;
+       pinctrl-2 = <&mux_sdhc1_200mhz>, <&mux_sdhc1_cd>;
+       wakeup-source;
+       vmmc-supply = <&reg_vsd>;
+       status = "okay";
+};
+
+&usdhc2 {
+       /* eMMC */
+       keep-power-in-suspend;
+       no-1-8-v;
+       non-removable;
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_sdhc2>;
+       wakeup-source;
+       status = "okay";
+};
+
+&wdog1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&mux_wdog>;
+};
+
+&iomuxc {
+       mux_adc: adcgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO07__GPIO1_IO07                0xb0
+               >;
+       };
+
+       mux_backlight_enable: blenablegrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO09__GPIO1_IO09                0x3008
+               >;
+       };
+
+       mux_charger_stat1: charger1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO01__GPIO1_IO01                0x3008
+               >;
+       };
+
+       mux_charger_stat2: charger2grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO02__GPIO1_IO02                0x3008
+               >;
+       };
+
+       mux_csi: csi1grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_PIXCLK__CSI_PIXCLK                0x1b088
+                       MX6UL_PAD_CSI_VSYNC__CSI_VSYNC                  0x1b088
+                       MX6UL_PAD_CSI_HSYNC__CSI_HSYNC                  0x1b088
+                       MX6UL_PAD_CSI_DATA00__CSI_DATA02                0x1b088
+                       MX6UL_PAD_CSI_DATA01__CSI_DATA03                0x1b088
+                       MX6UL_PAD_CSI_DATA02__CSI_DATA04                0x1b088
+                       MX6UL_PAD_CSI_DATA03__CSI_DATA05                0x1b088
+                       MX6UL_PAD_CSI_DATA04__CSI_DATA06                0x1b088
+                       MX6UL_PAD_CSI_DATA05__CSI_DATA07                0x1b088
+                       MX6UL_PAD_CSI_DATA06__CSI_DATA08                0x1b088
+                       MX6UL_PAD_CSI_DATA07__CSI_DATA09                0x1b088
+               >;
+       };
+
+       mux_gc0308: gc0308grp {
+               fsl,pins = <
+                       MX6UL_PAD_CSI_MCLK__CSI_MCLK                    0x1e038
+                       MX6UL_PAD_GPIO1_IO05__GPIO1_IO05                0x1b088
+                       MX6UL_PAD_GPIO1_IO06__GPIO1_IO06                0x1b088
+               >;
+       };
+
+       mux_gpio_keys: gpiokeygrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11            0x3008
+                       MX6UL_PAD_ENET2_TX_DATA1__GPIO2_IO12            0x3008
+                       MX6UL_PAD_ENET2_TX_EN__GPIO2_IO13               0x3008
+                       MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10               0x3008
+                       MX6UL_PAD_ENET2_RX_DATA1__GPIO2_IO09            0x3008
+                       MX6UL_PAD_ENET2_RX_ER__GPIO2_IO15               0x3008
+                       MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08            0x3008
+                       MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14              0x3008
+                       MX6UL_PAD_ENET1_TX_DATA0__GPIO2_IO03            0x3008
+                       MX6UL_PAD_ENET1_RX_DATA1__GPIO2_IO01            0x3008
+               >;
+       };
+
+       mux_i2c1: i2c1grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART4_TX_DATA__I2C1_SCL               0x4001b8b0
+                       MX6UL_PAD_UART4_RX_DATA__I2C1_SDA               0x4001b8b0
+               >;
+       };
+
+       mux_i2c2: i2c2grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART5_TX_DATA__I2C2_SCL               0x4001f8a8
+                       MX6UL_PAD_UART5_RX_DATA__I2C2_SDA               0x4001f8a8
+               >;
+       };
+
+       mux_ir_reset: irresetgrp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO03__GPIO1_IO03                0x3008
+               >;
+       };
+
+       mux_lcd_ctrl: lcdifctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_CLK__LCDIF_CLK                    0x79
+                       MX6UL_PAD_LCD_ENABLE__LCDIF_ENABLE              0x79
+                       MX6UL_PAD_LCD_HSYNC__LCDIF_HSYNC                0x79
+                       MX6UL_PAD_LCD_VSYNC__LCDIF_VSYNC                0x79
+               >;
+       };
+
+       mux_lcd_data: lcdifdatgrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_DATA00__LCDIF_DATA00              0x79
+                       MX6UL_PAD_LCD_DATA01__LCDIF_DATA01              0x79
+                       MX6UL_PAD_LCD_DATA02__LCDIF_DATA02              0x79
+                       MX6UL_PAD_LCD_DATA03__LCDIF_DATA03              0x79
+                       MX6UL_PAD_LCD_DATA04__LCDIF_DATA04              0x79
+                       MX6UL_PAD_LCD_DATA05__LCDIF_DATA05              0x79
+                       MX6UL_PAD_LCD_DATA06__LCDIF_DATA06              0x79
+                       MX6UL_PAD_LCD_DATA07__LCDIF_DATA07              0x79
+                       MX6UL_PAD_LCD_DATA08__LCDIF_DATA08              0x79
+                       MX6UL_PAD_LCD_DATA09__LCDIF_DATA09              0x79
+                       MX6UL_PAD_LCD_DATA10__LCDIF_DATA10              0x79
+                       MX6UL_PAD_LCD_DATA11__LCDIF_DATA11              0x79
+                       MX6UL_PAD_LCD_DATA12__LCDIF_DATA12              0x79
+                       MX6UL_PAD_LCD_DATA13__LCDIF_DATA13              0x79
+                       MX6UL_PAD_LCD_DATA14__LCDIF_DATA14              0x79
+                       MX6UL_PAD_LCD_DATA15__LCDIF_DATA15              0x79
+                       MX6UL_PAD_LCD_DATA16__LCDIF_DATA16              0x79
+                       MX6UL_PAD_LCD_DATA17__LCDIF_DATA17              0x79
+               >;
+       };
+
+       mux_led_ctrl: ledctrlgrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_RX_EN__GPIO2_IO02               0x3008
+               >;
+       };
+
+       mux_poweroff: poweroffgrp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_TX_DATA1__GPIO2_IO04            0x3008
+               >;
+       };
+
+       mux_poweroff2: poweroff2grp {
+               fsl,pins = <
+                       MX6UL_PAD_ENET1_TX_CLK__GPIO2_IO06              0x3008
+               >;
+       };
+
+       mux_pwm: pwm1grp {
+               fsl,pins = <
+                       MX6UL_PAD_GPIO1_IO08__PWM1_OUT                  0x110b0
+               >;
+       };
+
+       mux_sdhc1: sdhc1grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD                   0x17059
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK                   0x10071
+                       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
+               >;
+       };
+
+       mux_sdhc1_100mhz: sdhc1-100mhz-grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD                   0x170b9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK                   0x170b9
+                       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
+               >;
+       };
+
+       mux_sdhc1_200mhz: sdhc1-200mhz-grp {
+               fsl,pins = <
+                       MX6UL_PAD_SD1_CMD__USDHC1_CMD                   0x170f9
+                       MX6UL_PAD_SD1_CLK__USDHC1_CLK                   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
+               >;
+       };
+
+       mux_sdhc1_cd: sdhc1-cd-grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_RTS_B__GPIO1_IO19               0x17059
+               >;
+       };
+
+       mux_sdhc2: sdhc2grp {
+               fsl,pins = <
+                       MX6UL_PAD_NAND_RE_B__USDHC2_CLK                 0x10069
+                       MX6UL_PAD_NAND_WE_B__USDHC2_CMD                 0x17059
+                       MX6UL_PAD_NAND_DATA00__USDHC2_DATA0             0x17059
+                       MX6UL_PAD_NAND_DATA01__USDHC2_DATA1             0x17059
+                       MX6UL_PAD_NAND_DATA02__USDHC2_DATA2             0x17059
+                       MX6UL_PAD_NAND_DATA03__USDHC2_DATA3             0x17059
+                       MX6UL_PAD_NAND_DATA04__USDHC2_DATA4             0x17059
+                       MX6UL_PAD_NAND_DATA05__USDHC2_DATA5             0x17059
+                       MX6UL_PAD_NAND_DATA06__USDHC2_DATA6             0x17059
+                       MX6UL_PAD_NAND_DATA07__USDHC2_DATA7             0x17059
+               >;
+       };
+
+       mux_spi3: ecspi3grp {
+               fsl,pins = <
+                       MX6UL_PAD_UART2_CTS_B__ECSPI3_MOSI              0x100b1
+                       MX6UL_PAD_UART2_RX_DATA__ECSPI3_SCLK            0x100b1
+                       MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20             0x3008
+               >;
+       };
+
+       mux_uart: uartgrp {
+               fsl,pins = <
+                       MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX           0x1b0b1
+                       MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX           0x1b0b1
+               >;
+       };
+
+       mux_wdog: wdoggrp {
+               fsl,pins = <
+                       MX6UL_PAD_LCD_RESET__WDOG1_WDOG_ANY             0x30b0
+               >;
+       };
+};
index 9c81c6b..22dd724 100644 (file)
                                        clock-names = "snvs-rtc";
                                };
 
+                               snvs_poweroff: snvs-poweroff {
+                                       compatible = "syscon-poweroff";
+                                       regmap = <&snvs>;
+                                       offset = <0x38>;
+                                       value = <0x60>;
+                                       mask = <0x60>;
+                                       status = "disabled";
+                               };
+
                                snvs_pwrkey: snvs-powerkey {
                                        compatible = "fsl,sec-v4.0-pwrkey";
                                        regmap = <&snvs>;
index 6478a39..e2e922b 100644 (file)
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_QCOM) += \
+       msm8226-motorola-falcon.dtb \
        qcom-apq8016-sbc.dtb \
        qcom-apq8026-asus-sparrow.dtb \
        qcom-apq8026-huawei-sturgeon.dtb \
@@ -45,7 +46,9 @@ dtb-$(CONFIG_ARCH_QCOM) += \
        qcom-msm8974pro-fairphone-fp2.dtb \
        qcom-msm8974pro-oneplus-bacon.dtb \
        qcom-msm8974pro-samsung-klte.dtb \
+       qcom-msm8974pro-samsung-kltechn.dtb \
        qcom-msm8974pro-sony-xperia-shinano-castor.dtb \
+       qcom-msm8974pro-sony-xperia-shinano-leo.dtb \
        qcom-mdm9615-wp8548-mangoh-green.dtb \
        qcom-sdx55-mtp.dtb \
        qcom-sdx55-t55.dtb \
diff --git a/arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts b/arch/arm/boot/dts/qcom/msm8226-motorola-falcon.dts
new file mode 100644 (file)
index 0000000..029e1b1
--- /dev/null
@@ -0,0 +1,359 @@
+// SPDX-License-Identifier: BSD-3-Clause
+
+/dts-v1/;
+
+#include "qcom-msm8226.dtsi"
+#include "pm8226.dtsi"
+
+/delete-node/ &smem_region;
+
+/ {
+       model = "Motorola Moto G (2013)";
+       compatible = "motorola,falcon", "qcom,msm8226";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdhc_1;
+       };
+
+       chosen {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer@3200000 {
+                       compatible = "simple-framebuffer";
+                       reg = <0x03200000 0x800000>;
+                       width = <720>;
+                       height = <1280>;
+                       stride = <(720 * 3)>;
+                       format = "r8g8b8";
+                       vsp-supply = <&reg_lcd_pos>;
+                       vsn-supply = <&reg_lcd_neg>;
+                       vddio-supply = <&vddio_disp_vreg>;
+               };
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               event-hall-sensor {
+                       label = "Hall Effect Sensor";
+                       gpios = <&tlmm 51 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_LID>;
+                       linux,can-disable;
+               };
+
+               key-volume-up {
+                       label = "Volume Up";
+                       gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       vddio_disp_vreg: regulator-vddio-disp {
+               compatible = "regulator-fixed";
+               regulator-name = "vddio_disp";
+               gpio = <&tlmm 34 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&pm8226_l8>;
+               startup-delay-us = <300>;
+               enable-active-high;
+               regulator-boot-on;
+       };
+
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               framebuffer@3200000 {
+                       reg = <0x03200000 0x800000>;
+                       no-map;
+               };
+
+               dhob@f500000 {
+                       reg = <0x0f500000 0x40000>;
+                       no-map;
+               };
+
+               shob@f540000 {
+                       reg = <0x0f540000 0x2000>;
+                       no-map;
+               };
+
+               smem_region: smem@fa00000 {
+                       reg = <0x0fa00000 0x100000>;
+                       no-map;
+               };
+
+               /* Actually <0x0fa00000 0x500000>, but first 100000 is smem */
+               reserved@fb00000 {
+                       reg = <0x0fb00000 0x400000>;
+                       no-map;
+               };
+       };
+};
+
+&blsp1_i2c3 {
+       status = "okay";
+
+       regulator@3e {
+               compatible = "ti,tps65132";
+               reg = <0x3e>;
+               pinctrl-0 = <&reg_lcd_default>;
+               pinctrl-names = "default";
+
+               reg_lcd_pos: outp {
+                       regulator-name = "outp";
+                       regulator-min-microvolt = <4000000>;
+                       regulator-max-microvolt = <6000000>;
+                       regulator-active-discharge = <1>;
+                       regulator-boot-on;
+                       enable-gpios = <&tlmm 31 GPIO_ACTIVE_HIGH>;
+               };
+
+               reg_lcd_neg: outn {
+                       regulator-name = "outn";
+                       regulator-min-microvolt = <4000000>;
+                       regulator-max-microvolt = <6000000>;
+                       regulator-active-discharge = <1>;
+                       regulator-boot-on;
+                       enable-gpios = <&tlmm 33 GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp108";
+               reg = <0x48>;
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&temp_alert_default>;
+               pinctrl-names = "default";
+               #thermal-sensor-cells = <0>;
+       };
+};
+
+&pm8226_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
+&pm8226_vib {
+       status = "okay";
+};
+
+&rpm_requests {
+       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>;
+                       regulator-allow-set-load;
+               };
+
+               pm8226_l7: l7 {
+                       regulator-min-microvolt = <1850000>;
+                       regulator-max-microvolt = <1850000>;
+               };
+
+               pm8226_l8: l8 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+               };
+
+               pm8226_l9: l9 {
+                       regulator-min-microvolt = <2050000>;
+                       regulator-max-microvolt = <2050000>;
+               };
+
+               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 = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+               };
+
+               pm8226_l16: l16 {
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3350000>;
+               };
+
+               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>;
+                       regulator-allow-set-load;
+               };
+
+               pm8226_l22: l22 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               pm8226_l23: l23 {
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2950000>;
+               };
+
+               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 = <3400000>;
+                       regulator-boot-on;
+               };
+
+               pm8226_lvs1: lvs1 {
+                       regulator-always-on;
+               };
+       };
+};
+
+&sdhc_1 {
+       vmmc-supply = <&pm8226_l17>;
+       vqmmc-supply = <&pm8226_l6>;
+
+       bus-width = <8>;
+       non-removable;
+
+       status = "okay";
+};
+
+&smbb {
+       qcom,fast-charge-safe-current = <2000000>;
+       qcom,fast-charge-current-limit = <1900000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,minimum-input-voltage = <4300000>;
+
+       status = "okay";
+};
+
+&tlmm {
+       reg_lcd_default: reg-lcd-default-state {
+               pins = "gpio31", "gpio33";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       reg_vddio_disp_default: reg-vddio-disp-default-state {
+               pins = "gpio34";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-high;
+       };
+
+       temp_alert_default: temp-alert-default-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+               output-disable;
+       };
+};
+
+&usb {
+       extcon = <&smbb>;
+       dr_mode = "peripheral";
+       status = "okay";
+};
+
+&usb_hs_phy {
+       extcon = <&smbb>;
+       v1p8-supply = <&pm8226_l10>;
+       v3p3-supply = <&pm8226_l20>;
+};
index 9a5ba97..11e60b7 100644 (file)
@@ -87,7 +87,7 @@
                };
 
                idle-states {
-                       CPU_SPC: spc {
+                       CPU_SPC: cpu-spc {
                                compatible = "qcom,idle-state-spc",
                                                "arm,idle-state";
                                entry-latency-us = <400>;
                                 <&gcc PCIE_PHY_RESET>;
                        reset-names = "axi", "ahb", "por", "pci", "phy";
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                hdmi: hdmi-tx@4a00000 {
index 8204e64..ca53dff 100644 (file)
@@ -79,7 +79,7 @@
                };
 
                idle-states {
-                       CPU_SPC: spc {
+                       CPU_SPC: cpu-spc {
                                compatible = "qcom,idle-state-spc",
                                                "arm,idle-state";
                                entry-latency-us = <150>;
index 681cb3f..0fb65f2 100644 (file)
                                      "phy_ahb";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                qpic_bam: dma-controller@7984000 {
                        reg = <0x90000 0x64>;
                        status = "disabled";
 
-                       ethphy0: ethernet-phy@0 {
+                       ethernet-phy-package@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "qcom,qca8075-package";
                                reg = <0>;
-                       };
 
-                       ethphy1: ethernet-phy@1 {
-                               reg = <1>;
-                       };
+                               qcom,tx-drive-strength-milliwatt = <300>;
 
-                       ethphy2: ethernet-phy@2 {
-                               reg = <2>;
-                       };
+                               ethphy0: ethernet-phy@0 {
+                                       reg = <0>;
+                               };
 
-                       ethphy3: ethernet-phy@3 {
-                               reg = <3>;
-                       };
+                               ethphy1: ethernet-phy@1 {
+                                       reg = <1>;
+                               };
+
+                               ethphy2: ethernet-phy@2 {
+                                       reg = <2>;
+                               };
+
+                               ethphy3: ethernet-phy@3 {
+                                       reg = <3>;
+                               };
 
-                       ethphy4: ethernet-phy@4 {
-                               reg = <4>;
+                               ethphy4: ethernet-phy@4 {
+                                       reg = <4>;
+                               };
                        };
                };
 
index 2eb6758..f128510 100644 (file)
 
                        status = "disabled";
                        perst-gpios = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1: pcie@1b700000 {
 
                        status = "disabled";
                        perst-gpios = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2: pcie@1b900000 {
 
                        status = "disabled";
                        perst-gpios = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                qsgmii_csr: syscon@1bb00000 {
index 36328db..1ba403b 100644 (file)
@@ -26,7 +26,7 @@
 };
 
 &CPU_SLEEP_0 {
-       compatible = "qcom,idle-state-spc";
+       compatible = "qcom,idle-state-spc", "arm,idle-state";
 };
 
 &cpu0_acc {
index 5efc38d..5651bb3 100644 (file)
@@ -14,6 +14,8 @@
        #size-cells = <1>;
        interrupt-parent = <&intc>;
 
+       chosen { };
+
        clocks {
                xo_board: xo_board {
                        compatible = "fixed-clock";
@@ -85,7 +87,7 @@
                };
 
                idle-states {
-                       CPU_SPC: spc {
+                       CPU_SPC: cpu-spc {
                                compatible = "qcom,idle-state-spc",
                                                "arm,idle-state";
                                entry-latency-us = <150>;
                };
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0>;
        };
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-klte-common.dtsi
new file mode 100644 (file)
index 0000000..b5443fd
--- /dev/null
@@ -0,0 +1,818 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "pma8084.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       chassis-type = "handset";
+
+       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>;
+
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-home {
+                       label = "home_key";
+                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <1>;
+                       linux,code = <KEY_HOMEPAGE>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               key-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_led_gpio: i2c-gpio-led {
+               compatible = "i2c-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               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;
+       };
+
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               regulator-always-on;
+       };
+};
+
+&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";
+       };
+};
+
+&gpu {
+       status = "okay";
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_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>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       status = "okay";
+
+       vddio-supply = <&pma8084_l12>;
+};
+
+&pma8084_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio3", "gpio5";
+               function = "normal";
+
+               bias-pull-up;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       touchkey_pin: touchkey-int-state {
+               pins = "gpio6";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       touch_pin: touchscreen-int-state {
+               pins = "gpio8";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+
+       panel_en_pin: panel-en-state {
+               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-state {
+               pins = "gpio16";
+               function = "func2";
+
+               output-high;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+
+       panel_rst_pin: panel-rst-state {
+               pins = "gpio17";
+               function = "normal";
+               bias-disable;
+               power-source = <PMA8084_GPIO_S4>;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+
+       fuelgauge_pin: fuelgauge-int-state {
+               pins = "gpio21";
+               function = "normal";
+               bias-disable;
+               input-enable;
+               power-source = <PMA8084_GPIO_S4>;
+       };
+};
+
+&remoteproc_adsp {
+       status = "okay";
+       cx-supply = <&pma8084_s2>;
+};
+
+&remoteproc_mss {
+       status = "okay";
+       cx-supply = <&pma8084_s2>;
+       mss-supply = <&pma8084_s6>;
+       mx-supply = <&pma8084_s1>;
+       pll-supply = <&pma8084_l12>;
+};
+
+&rpm_requests {
+       regulators-0 {
+               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";
+
+               /*
+                * Allow all klte* variants to load the same NVRAM file,
+                * as they have little difference in the WiFi part.
+                */
+               brcm,board-type = "samsung,klte";
+
+               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-state {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "blsp_uart8";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
+               pins = "gpio45", "gpio46", "gpio47", "gpio48";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-down;
+       };
+
+       bt_pins: bt-pins-state {
+               hostwake-pins {
+                       pins = "gpio75";
+                       function = "gpio";
+                       drive-strength = <16>;
+               };
+
+               devwake-pins {
+                       pins = "gpio91";
+                       function = "gpio";
+                       drive-strength = <2>;
+               };
+       };
+
+       sdc1_on: sdhc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <4>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <4>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc3_on: sdc3-on-state {
+               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
+               function = "sdc3";
+               drive-strength = <8>;
+               bias-disable;
+       };
+
+       sdhc3_cd_pin: sdc3-cd-on-state {
+               pins = "gpio62";
+               function = "gpio";
+
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       sdc2_on: sdhc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+       };
+
+       i2c_touchkey_pins: i2c-touchkey-state {
+               pins = "gpio95", "gpio96";
+               function = "gpio";
+               bias-pull-up;
+       };
+
+       i2c_led_gpioex_pins: i2c-led-gpioex-state {
+               function = "gpio";
+               bias-pull-down;
+       };
+
+       gpioex_pin: gpioex-state {
+               pins = "gpio145";
+               function = "gpio";
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       wifi_pin: wifi-state {
+               pins = "gpio92";
+               function = "gpio";
+               bias-pull-down;
+       };
+
+       panel_te_pin: panel-state {
+               pins = "gpio12";
+               function = "mdp_vsync";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&usb {
+       status = "okay";
+
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+};
+
+&usb_hs1_phy {
+       status = "okay";
+
+       v1p8-supply = <&pma8084_l6>;
+       v3p3-supply = <&pma8084_l24>;
+
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+};
index b93539e..954665f 100644 (file)
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974pro.dtsi"
-#include "pma8084.dtsi"
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
-#include <dt-bindings/leds/common.h>
+#include "qcom-msm8974pro-samsung-klte-common.dtsi"
 
 / {
        model = "Samsung Galaxy S5";
        compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
-       chassis-type = "handset";
-
-       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>;
-
-               key-volume-down {
-                       label = "volume_down";
-                       gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       debounce-interval = <15>;
-               };
-
-               key-home {
-                       label = "home_key";
-                       gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_HOMEPAGE>;
-                       wakeup-source;
-                       debounce-interval = <15>;
-               };
-
-               key-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;
-       };
-
-       vreg_vph_pwr: vreg-vph-pwr {
-               compatible = "regulator-fixed";
-               regulator-name = "vph-pwr";
-
-               regulator-min-microvolt = <3600000>;
-               regulator-max-microvolt = <3600000>;
-
-               regulator-always-on;
-       };
-};
-
-&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";
-       };
-};
-
-&gpu {
-       status = "okay";
-};
-
-&mdss {
-       status = "okay";
-};
-
-&mdss_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>;
-
-               port {
-                       panel_in: endpoint {
-                               remote-endpoint = <&mdss_dsi0_out>;
-                       };
-               };
-       };
-};
-
-&mdss_dsi0_out {
-       remote-endpoint = <&panel_in>;
-       data-lanes = <0 1 2 3>;
-};
-
-&mdss_dsi0_phy {
-       status = "okay";
-
-       vddio-supply = <&pma8084_l12>;
 };
 
-&pma8084_gpios {
-       gpio_keys_pin_a: gpio-keys-active-state {
-               pins = "gpio2", "gpio3", "gpio5";
-               function = "normal";
-
-               bias-pull-up;
-               power-source = <PMA8084_GPIO_S4>;
-       };
-
-       touchkey_pin: touchkey-int-state {
-               pins = "gpio6";
-               function = "normal";
-               bias-disable;
-               input-enable;
-               power-source = <PMA8084_GPIO_S4>;
-       };
-
-       touch_pin: touchscreen-int-state {
-               pins = "gpio8";
-               function = "normal";
-               bias-disable;
-               input-enable;
-               power-source = <PMA8084_GPIO_S4>;
-       };
-
-       panel_en_pin: panel-en-state {
-               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-state {
-               pins = "gpio16";
-               function = "func2";
-
-               output-high;
-               power-source = <PMA8084_GPIO_S4>;
-               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
-       };
-
-       panel_rst_pin: panel-rst-state {
-               pins = "gpio17";
-               function = "normal";
-               bias-disable;
-               power-source = <PMA8084_GPIO_S4>;
-               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
-       };
-
-       fuelgauge_pin: fuelgauge-int-state {
-               pins = "gpio21";
-               function = "normal";
-               bias-disable;
-               input-enable;
-               power-source = <PMA8084_GPIO_S4>;
-       };
+&i2c_led_gpio {
+       scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
 };
 
-&remoteproc_adsp {
-       status = "okay";
-       cx-supply = <&pma8084_s2>;
-};
-
-&remoteproc_mss {
-       status = "okay";
-       cx-supply = <&pma8084_s2>;
-       mss-supply = <&pma8084_s6>;
-       mx-supply = <&pma8084_s1>;
-       pll-supply = <&pma8084_l12>;
-};
-
-&rpm_requests {
-       regulators-0 {
-               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-state {
-               pins = "gpio45", "gpio46", "gpio47", "gpio48";
-               function = "blsp_uart8";
-               drive-strength = <8>;
-               bias-disable;
-       };
-
-       blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state {
-               pins = "gpio45", "gpio46", "gpio47", "gpio48";
-               function = "gpio";
-               drive-strength = <2>;
-               bias-pull-down;
-       };
-
-       bt_pins: bt-pins-state {
-               hostwake-pins {
-                       pins = "gpio75";
-                       function = "gpio";
-                       drive-strength = <16>;
-               };
-
-               devwake-pins {
-                       pins = "gpio91";
-                       function = "gpio";
-                       drive-strength = <2>;
-               };
-       };
-
-       sdc1_on: sdhc1-on-state {
-               clk-pins {
-                       pins = "sdc1_clk";
-                       drive-strength = <4>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc1_cmd", "sdc1_data";
-                       drive-strength = <4>;
-                       bias-pull-up;
-               };
-       };
-
-       sdc3_on: sdc3-on-state {
-               pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
-               function = "sdc3";
-               drive-strength = <8>;
-               bias-disable;
-       };
-
-       sdhc3_cd_pin: sdc3-cd-on-state {
-               pins = "gpio62";
-               function = "gpio";
-
-               drive-strength = <2>;
-               bias-disable;
-       };
-
-       sdc2_on: sdhc2-on-state {
-               clk-pins {
-                       pins = "sdc2_clk";
-                       drive-strength = <6>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc2_cmd", "sdc2_data";
-                       drive-strength = <6>;
-                       bias-pull-up;
-               };
-       };
-
-       i2c_touchkey_pins: i2c-touchkey-state {
-               pins = "gpio95", "gpio96";
-               function = "gpio";
-               bias-pull-up;
-       };
-
-       i2c_led_gpioex_pins: i2c-led-gpioex-state {
-               pins = "gpio120", "gpio121";
-               function = "gpio";
-               bias-pull-down;
-       };
-
-       gpioex_pin: gpioex-state {
-               pins = "gpio145";
-               function = "gpio";
-               bias-pull-up;
-               drive-strength = <2>;
-       };
-
-       wifi_pin: wifi-state {
-               pins = "gpio92";
-               function = "gpio";
-               bias-pull-down;
-       };
-
-       panel_te_pin: panel-state {
-               pins = "gpio12";
-               function = "mdp_vsync";
-               drive-strength = <2>;
-               bias-disable;
-       };
-};
-
-&usb {
-       status = "okay";
-
-       phys = <&usb_hs1_phy>;
-       phy-select = <&tcsr 0xb000 0>;
-
-       hnp-disable;
-       srp-disable;
-       adp-disable;
-};
-
-&usb_hs1_phy {
-       status = "okay";
-
-       v1p8-supply = <&pma8084_l6>;
-       v3p3-supply = <&pma8084_l24>;
-
-       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+&i2c_led_gpioex_pins {
+       pins = "gpio120", "gpio121";
 };
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts b/arch/arm/boot/dts/qcom/qcom-msm8974pro-samsung-kltechn.dts
new file mode 100644 (file)
index 0000000..b902e31
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-samsung-klte-common.dtsi"
+
+/ {
+       model = "Samsung Galaxy S5 China";
+       compatible = "samsung,kltechn", "samsung,klte", "qcom,msm8974pro", "qcom,msm8974";
+};
+
+&i2c_led_gpio {
+       scl-gpios = <&tlmm 61 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&tlmm 60 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
+&i2c_led_gpioex_pins {
+       pins = "gpio60", "gpio61";
+};
index ee94741..409d179 100644 (file)
@@ -1,60 +1,11 @@
 // SPDX-License-Identifier: GPL-2.0
-#include "qcom-msm8974pro.dtsi"
-#include "pm8841.dtsi"
-#include "pm8941.dtsi"
-#include <dt-bindings/input/input.h>
-#include <dt-bindings/leds/common.h>
-#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include "qcom-msm8974pro-sony-xperia-shinano-common.dtsi"
 
 / {
        model = "Sony Xperia Z2 Tablet";
        compatible = "sony,xperia-castor", "qcom,msm8974pro", "qcom,msm8974";
        chassis-type = "tablet";
 
-       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>;
-
-               key-volume-down {
-                       label = "volume_down";
-                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-               };
-
-               key-camera-snapshot {
-                       label = "camera_snapshot";
-                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA>;
-               };
-
-               key-camera-focus {
-                       label = "camera_focus";
-                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <1>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
-               };
-
-               key-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";
                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_boost: vreg-boost {
-               compatible = "regulator-fixed";
-
-               regulator-name = "vreg-boost";
-               regulator-min-microvolt = <3150000>;
-               regulator-max-microvolt = <3150000>;
-
-               regulator-always-on;
-               regulator-boot-on;
-
-               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
-               enable-active-high;
-
                pinctrl-names = "default";
-               pinctrl-0 = <&boost_bypass_n_pin>;
        };
-
-       vreg_vph_pwr: vreg-vph-pwr {
-               compatible = "regulator-fixed";
-               regulator-name = "vph-pwr";
-
-               regulator-min-microvolt = <3600000>;
-               regulator-max-microvolt = <3600000>;
-
-               regulator-always-on;
-       };
-
-       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";
+&blsp2_i2c5 {
        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 = <100>;
-
-               rmi4-f01@1 {
-                       reg = <0x1>;
-                       syna,nosleep-mode = <1>;
-               };
-
-               rmi4-f11@11 {
-                       reg = <0x11>;
-                       syna,sensor-type = <1>;
-                       touchscreen-inverted-x;
-               };
-       };
-};
-
-&blsp2_i2c5 {
        status = "okay";
-       clock-frequency = <355000>;
 
        lp8566_wled: backlight@2c {
                compatible = "ti,lp8556";
                        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>;
                compatible = "brcm,bcm43438-bt";
                max-speed = <3000000>;
 
-               pinctrl-names = "default";
                pinctrl-0 = <&bt_host_wake_pin>, <&bt_dev_wake_pin>, <&bt_reg_on_pin>;
+               pinctrl-names = "default";
 
                host-wakeup-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>;
                device-wakeup-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
        };
 };
 
-&pm8941_coincell {
-       status = "okay";
-
-       qcom,rset-ohms = <2100>;
-       qcom,vset-millivolts = <3000>;
-};
-
 &pm8941_gpios {
-       gpio_keys_pin_a: gpio-keys-active-state {
-               pins = "gpio2", "gpio5";
-               function = "normal";
-
-               bias-pull-up;
-               power-source = <PM8941_GPIO_S3>;
-       };
-
        bt_reg_on_pin: bt-reg-on-state {
                pins = "gpio16";
                function = "normal";
-
                output-low;
                power-source = <PM8941_GPIO_S3>;
        };
-
-       wlan_sleep_clk_pin: wl-sleep-clk-state {
-               pins = "gpio17";
-               function = "func2";
-
-               output-high;
-               power-source = <PM8941_GPIO_S3>;
-       };
-
-       wlan_regulator_pin: wl-reg-active-state {
-               pins = "gpio18";
-               function = "normal";
-
-               bias-disable;
-               power-source = <PM8941_GPIO_S3>;
-       };
-
-       lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state {
-               pins = "gpio20";
-               function = "normal";
-
-               bias-disable;
-               power-source = <PM8941_GPIO_S3>;
-               input-disable;
-               output-low;
-       };
-
-};
-
-&pm8941_lpg {
-       status = "okay";
-
-       qcom,power-source = <1>;
-
-       multi-led {
-               color = <LED_COLOR_ID_RGB>;
-               function = LED_FUNCTION_STATUS;
-
-               #address-cells = <1>;
-               #size-cells = <0>;
-
-               led@5 {
-                       reg = <5>;
-                       color = <LED_COLOR_ID_BLUE>;
-               };
-
-               led@6 {
-                       reg = <6>;
-                       color = <LED_COLOR_ID_GREEN>;
-               };
-
-               led@7 {
-                       reg = <7>;
-                       color = <LED_COLOR_ID_RED>;
-               };
-       };
-};
-
-&remoteproc_adsp {
-       cx-supply = <&pm8841_s2>;
-       status = "okay";
-};
-
-&remoteproc_mss {
-       cx-supply = <&pm8841_s2>;
-       mss-supply = <&pm8841_s3>;
-       mx-supply = <&pm8841_s1>;
-       pll-supply = <&pm8941_l12>;
-       status = "okay";
 };
 
 &rpm_requests {
-       regulators-0 {
-               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>;
-               };
-       };
-
        regulators-1 {
-               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>;
        };
 };
 
        status = "okay";
 };
 
-&tlmm {
-       lcd_backlight_en_pin_a: lcd-backlight-vddio-state {
-               pins = "gpio69";
-               function = "gpio";
-               drive-strength = <10>;
-               output-low;
-               bias-disable;
-       };
-
-       sdc1_on: sdc1-on-state {
-               clk-pins {
-                       pins = "sdc1_clk";
-                       drive-strength = <16>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc1_cmd", "sdc1_data";
-                       drive-strength = <10>;
-                       bias-pull-up;
-               };
-       };
-
-       sdc2_on: sdc2-on-state {
-               clk-pins {
-                       pins = "sdc2_clk";
-                       drive-strength = <6>;
-                       bias-disable;
-               };
-
-               cmd-data-pins {
-                       pins = "sdc2_cmd", "sdc2_data";
-                       drive-strength = <6>;
-                       bias-pull-up;
-               };
-
-               cd-pins {
-                       pins = "gpio62";
-                       function = "gpio";
-                       drive-strength = <2>;
-                       bias-disable;
-               };
-       };
-
-       sdc3_on: sdc3-on-state {
-               clk-pins {
-                       pins = "gpio40";
-                       function = "sdc3";
-                       drive-strength = <10>;
-                       bias-disable;
-               };
-
-               cmd-pins {
-                       pins = "gpio39";
-                       function = "sdc3";
-                       drive-strength = <10>;
-                       bias-pull-up;
-               };
-
-               data-pins {
-                       pins = "gpio35", "gpio36", "gpio37", "gpio38";
-                       function = "sdc3";
-                       drive-strength = <10>;
-                       bias-pull-up;
-               };
-       };
+&synaptics_touchscreen {
+       vio-supply = <&pm8941_lvs3>;
+};
 
-       ts_int_pin: ts-int-pin-state {
-               pins = "gpio86";
+&tlmm {
+       bt_dev_wake_pin: bt-dev-wake-state {
+               pins = "gpio96";
                function = "gpio";
                drive-strength = <2>;
                bias-disable;
                output-low;
        };
 
-       bt_dev_wake_pin: bt-dev-wake-state {
-               pins = "gpio96";
+       lcd_backlight_en_pin_a: lcd-backlight-vddio-state {
+               pins = "gpio69";
                function = "gpio";
-               drive-strength = <2>;
+               drive-strength = <10>;
+               output-low;
                bias-disable;
        };
 };
-
-&usb {
-       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;
-};
-
-&usb_hs1_phy {
-       status = "okay";
-
-       v1p8-supply = <&pm8941_l6>;
-       v3p3-supply = <&pm8941_l24>;
-
-       extcon = <&smbb>;
-       qcom,init-seq = /bits/ 8 <0x1 0x64>;
-};
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi b/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-common.dtsi
new file mode 100644 (file)
index 0000000..e129bb1
--- /dev/null
@@ -0,0 +1,539 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro.dtsi"
+#include "pm8841.dtsi"
+#include "pm8941.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+
+/ {
+       aliases {
+               mmc0 = &sdhc_1;
+               mmc1 = &sdhc_2;
+               serial0 = &blsp1_uart2;
+               serial1 = &blsp2_uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&gpio_keys_pin_a>;
+               pinctrl-names = "default";
+
+               key-volume-down {
+                       label = "volume_down";
+                       gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       debounce-interval = <15>;
+               };
+
+               key-volume-up {
+                       label = "volume_up";
+                       gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       debounce-interval = <15>;
+               };
+       };
+
+       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-0 = <&lcd_dcdc_en_pin_a>;
+               pinctrl-names = "default";
+       };
+
+       vreg_boost: vreg-boost {
+               compatible = "regulator-fixed";
+
+               regulator-name = "vreg-boost";
+               regulator-min-microvolt = <3150000>;
+               regulator-max-microvolt = <3150000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+
+               gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&boost_bypass_n_pin>;
+       };
+
+       vreg_vph_pwr: vreg-vph-pwr {
+               compatible = "regulator-fixed";
+               regulator-name = "vph-pwr";
+
+               regulator-min-microvolt = <3600000>;
+               regulator-max-microvolt = <3600000>;
+
+               regulator-always-on;
+       };
+
+       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-0 = <&wlan_regulator_pin>;
+               pinctrl-names = "default";
+       };
+};
+
+&blsp1_uart2 {
+       status = "okay";
+};
+
+&blsp2_i2c2 {
+       clock-frequency = <355000>;
+
+       status = "okay";
+
+       synaptics_touchscreen: 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 is set in dts */
+
+               pinctrl-0 = <&ts_int_pin>;
+               pinctrl-names = "default";
+
+               syna,startup-delay-ms = <100>;
+
+               rmi4-f01@1 {
+                       reg = <0x1>;
+                       syna,nosleep-mode = <1>;
+               };
+
+               rmi4-f11@11 {
+                       reg = <0x11>;
+                       syna,sensor-type = <1>;
+                       touchscreen-inverted-x;
+               };
+       };
+};
+
+&pm8941_coincell {
+       qcom,rset-ohms = <2100>;
+       qcom,vset-millivolts = <3000>;
+
+       status = "okay";
+};
+
+&pm8941_gpios {
+       gpio_keys_pin_a: gpio-keys-active-state {
+               pins = "gpio2", "gpio5";
+               function = "normal";
+               bias-pull-up;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       wlan_sleep_clk_pin: wl-sleep-clk-state {
+               pins = "gpio17";
+               function = "func2";
+               output-high;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       wlan_regulator_pin: wl-reg-active-state {
+               pins = "gpio18";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+       };
+
+       lcd_dcdc_en_pin_a: lcd-dcdc-en-active-state {
+               pins = "gpio20";
+               function = "normal";
+               bias-disable;
+               power-source = <PM8941_GPIO_S3>;
+               input-disable;
+               output-low;
+       };
+};
+
+&pm8941_lpg {
+       qcom,power-source = <1>;
+
+       status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+
+               led@6 {
+                       reg = <6>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@7 {
+                       reg = <7>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
+};
+
+&pm8941_vib {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       cx-supply = <&pm8841_s2>;
+       status = "okay";
+};
+
+&remoteproc_mss {
+       cx-supply = <&pm8841_s2>;
+       mss-supply = <&pm8841_s3>;
+       mx-supply = <&pm8841_s1>;
+       pll-supply = <&pm8941_l12>;
+       status = "okay";
+};
+
+&rpm_requests {
+       regulators-0 {
+               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>;
+               };
+       };
+
+       regulators-1 {
+               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_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_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 {
+       vmmc-supply = <&pm8941_l20>;
+       vqmmc-supply = <&pm8941_s3>;
+
+       pinctrl-0 = <&sdc1_on>;
+       pinctrl-1 = <&sdc1_off>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&sdhc_2 {
+       vmmc-supply = <&pm8941_l21>;
+       vqmmc-supply = <&pm8941_l13>;
+
+       cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&sdc2_on>;
+       pinctrl-1 = <&sdc2_off>;
+       pinctrl-names = "default", "sleep";
+
+       status = "okay";
+};
+
+&sdhc_3 {
+       max-frequency = <100000000>;
+       vmmc-supply = <&vreg_wlan>;
+       non-removable;
+
+       pinctrl-0 = <&sdc3_on>;
+       pinctrl-names = "default";
+
+       status = "okay";
+
+       wifi@1 {
+               compatible = "brcm,bcm4339-fmac", "brcm,bcm4329-fmac";
+               reg = <1>;
+
+               brcm,drive-strength = <10>;
+
+               pinctrl-0 = <&wlan_sleep_clk_pin>;
+               pinctrl-names = "default";
+       };
+};
+
+&tlmm {
+       sdc1_on: sdc1-on-state {
+               clk-pins {
+                       pins = "sdc1_clk";
+                       drive-strength = <16>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc1_cmd", "sdc1_data";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       sdc2_on: sdc2-on-state {
+               clk-pins {
+                       pins = "sdc2_clk";
+                       drive-strength = <6>;
+                       bias-disable;
+               };
+
+               cmd-data-pins {
+                       pins = "sdc2_cmd", "sdc2_data";
+                       drive-strength = <6>;
+                       bias-pull-up;
+               };
+
+               cd-pins {
+                       pins = "gpio62";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+
+       sdc3_on: sdc3-on-state {
+               clk-pins {
+                       pins = "gpio40";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-disable;
+               };
+
+               cmd-pins {
+                       pins = "gpio39";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+
+               data-pins {
+                       pins = "gpio35", "gpio36", "gpio37", "gpio38";
+                       function = "sdc3";
+                       drive-strength = <10>;
+                       bias-pull-up;
+               };
+       };
+
+       ts_int_pin: ts-int-pin-state {
+               pins = "gpio86";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+};
+
+&usb {
+       phys = <&usb_hs1_phy>;
+       phy-select = <&tcsr 0xb000 0>;
+       extcon = <&smbb>, <&usb_id>;
+       vbus-supply = <&chg_otg>;
+
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+
+       status = "okay";
+};
+
+&usb_hs1_phy {
+       v1p8-supply = <&pm8941_l6>;
+       v3p3-supply = <&pm8941_l24>;
+
+       extcon = <&smbb>;
+       qcom,init-seq = /bits/ 8 <0x1 0x64>;
+
+       status = "okay";
+};
diff --git a/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-leo.dts b/arch/arm/boot/dts/qcom/qcom-msm8974pro-sony-xperia-shinano-leo.dts
new file mode 100644 (file)
index 0000000..1ed6e1c
--- /dev/null
@@ -0,0 +1,44 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "qcom-msm8974pro-sony-xperia-shinano-common.dtsi"
+
+/ {
+       model = "Sony Xperia Z3";
+       compatible = "sony,xperia-leo", "qcom,msm8974pro", "qcom,msm8974";
+       chassis-type = "handset";
+
+       gpio-keys {
+               key-camera-snapshot {
+                       label = "camera_snapshot";
+                       gpios = <&pm8941_gpios 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA>;
+                       debounce-interval = <15>;
+               };
+
+               key-camera-focus {
+                       label = "camera_focus";
+                       gpios = <&pm8941_gpios 4 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       debounce-interval = <15>;
+               };
+       };
+};
+
+&gpio_keys_pin_a {
+       pins = "gpio2", "gpio3", "gpio4", "gpio5";
+};
+
+&smbb {
+       usb-charge-current-limit = <1500000>;
+       qcom,fast-charge-safe-current = <3000000>;
+       qcom,fast-charge-current-limit = <2150000>;
+       qcom,fast-charge-safe-voltage = <4400000>;
+       qcom,fast-charge-high-threshold-voltage = <4350000>;
+       qcom,auto-recharge-threshold-voltage = <4280000>;
+       qcom,minimum-input-voltage = <4200000>;
+
+       status = "okay";
+};
+
+&synaptics_touchscreen {
+       vio-supply = <&pm8941_s3>;
+};
index edc9aaf..68fa585 100644 (file)
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie_ep: pcie-ep@1c00000 {
index e6d8da6..08ea4c5 100644 (file)
                                     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF0>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF1>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF2>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF3>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF4>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF5>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF6>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
                                     <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "eri", "rxi", "txi", "bri";
                        clocks = <&mstp4_clks R7S72100_CLK_SCIF7>;
                        clock-names = "fck";
                        power-domains = <&cpg_clocks>;
index ac654ff..9a2ae28 100644 (file)
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
        };
 
+       tmu0: timer@e61e0000 {
+               compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
+               reg = <0 0xe61e0000 0 0x30>;
+               interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tuni0", "tuni1", "tuni2";
+               clocks = <&mstp1_clks R8A73A4_CLK_TMU0>;
+               clock-names = "fck";
+               power-domains = <&pd_c5>;
+               status = "disabled";
+       };
+
+       tmu3: timer@fff80000 {
+               compatible = "renesas,tmu-r8a73a4", "renesas,tmu";
+               reg = <0 0xfff80000 0 0x30>;
+               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "tuni0", "tuni1", "tuni2";
+               clocks = <&mstp1_clks R8A73A4_CLK_TMU3>;
+               clock-names = "fck";
+               power-domains = <&pd_a3r>;
+               status = "disabled";
+       };
+
        dbsc1: memory-controller@e6790000 {
                compatible = "renesas,dbsc-r8a73a4";
                reg = <0 0xe6790000 0 0x10000>;
                };
 
                /* Gate clocks */
+               mstp1_clks: mstp1_clks@e6150134 {
+                       compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
+                       reg = <0 0xe6150134 0 4>, <0 0xe6150038 0 4>;
+                       clocks = <&cp_clk>, <&mp_clk>;
+                       #clock-cells = <1>;
+                       clock-indices = <
+                               R8A73A4_CLK_TMU0 R8A73A4_CLK_TMU3
+                       >;
+                       clock-output-names =
+                               "tmu0", "tmu3";
+               };
                mstp2_clks: mstp2_clks@e6150138 {
                        compatible = "renesas,r8a73a4-mstp-clocks", "renesas,cpg-mstp-clocks";
                        reg = <0 0xe6150138 0 4>, <0 0xe6150040 0 4>;
index 16d146d..d55c344 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7742", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7742",
                                     "renesas,rcar-gen2-thermal";
index 2245d19..d917c0a 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7743", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7743_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7743",
                                     "renesas,rcar-gen2-thermal";
index aa13841..754859c 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7744", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7744_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7744",
                                     "renesas,rcar-gen2-thermal";
index 44688b8..1682983 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7745", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7745_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                ipmmu_sy0: iommu@e6280000 {
                        compatible = "renesas,ipmmu-r8a7745",
                                     "renesas,ipmmu-vmsa";
index a5cf663..2375438 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a77470", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a77470", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a77470", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A77470_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                icram0: sram@e63a0000 {
                        compatible = "mmio-sram";
                        reg = <0 0xe63a0000 0 0x12000>;
index 46fb81f..583b74a 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7790", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7790",
                                     "renesas,rcar-gen2-thermal",
index b9d3414..de08ceb 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7791", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7791",
                                     "renesas,rcar-gen2-thermal",
index ecfab3f..7defeb8 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7792", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7792_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                icram0: sram@e63a0000 {
                        compatible = "mmio-sram";
                        reg = <0 0xe63a0000 0 0x12000>;
index f51bf68..d32a9d5 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7793", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7793_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                thermal: thermal@e61f0000 {
                        compatible = "renesas,thermal-r8a7793",
                                     "renesas,rcar-gen2-thermal",
index 371dd47..f37f094 100644 (file)
                        resets = <&cpg 407>;
                };
 
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 125>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 125>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@fff60000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xfff60000 0 0x30>;
+                       interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 111>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 111>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@fff70000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xfff70000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 122>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 122>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@fff80000 {
+                       compatible = "renesas,tmu-r8a7794", "renesas,tmu";
+                       reg = <0 0xfff80000 0 0x30>;
+                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 121>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A7794_PD_ALWAYS_ON>;
+                       resets = <&cpg 121>;
+                       status = "disabled";
+               };
+
                ipmmu_sy0: iommu@e6280000 {
                        compatible = "renesas,ipmmu-r8a7794",
                                     "renesas,ipmmu-vmsa";
index fa63e1a..45f60ee 100644 (file)
                gmac2: ethernet@44002000 {
                        compatible = "renesas,r9a06g032-gmac", "renesas,rzn1-gmac", "snps,dwmac";
                        reg = <0x44002000 0x2000>;
-                       interrupt-parent = <&gic>;
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
index 3f1015e..b6c3826 100644 (file)
                        samsung,spi-src-clk = <0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        samsung,spi-src-clk = <0>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 7f981b5..ed47d0c 100644 (file)
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi2_bus>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index b566f87..18f4f49 100644 (file)
@@ -88,7 +88,7 @@
 &keypad {
        samsung,keypad-num-rows = <2>;
        samsung,keypad-num-columns = <8>;
-       linux,keypad-no-autorepeat;
+       linux,input-no-autorepeat;
        wakeup-source;
        pinctrl-names = "default";
        pinctrl-0 = <&keypad_rows &keypad_cols>;
index e5254e3..9bc0596 100644 (file)
                /* Default S-BOOT bootloader loads initramfs here */
                linux,initrd-start = <0x42000000>;
                linux,initrd-end = <0x42800000>;
+
+               /*
+                * Stock bootloader provides incorrect memory size in ATAG_MEM;
+                * override it here
+                */
+               linux,usable-memory-range = <0x40000000 0x3fc00000>;
        };
 
        firmware@204f000 {
index 23b1516..10ab7bc 100644 (file)
 &keypad {
        samsung,keypad-num-rows = <3>;
        samsung,keypad-num-columns = <2>;
-       linux,keypad-no-autorepeat;
+       linux,input-no-autorepeat;
        wakeup-source;
        pinctrl-0 = <&keypad_rows &keypad_cols>;
        pinctrl-names = "default";
index 715dfcb..c83fb25 100644 (file)
@@ -69,7 +69,7 @@
 &keypad {
        samsung,keypad-num-rows = <3>;
        samsung,keypad-num-columns = <8>;
-       linux,keypad-no-autorepeat;
+       linux,input-no-autorepeat;
        wakeup-source;
        pinctrl-0 = <&keypad_rows &keypad_cols>;
        pinctrl-names = "default";
                linux,code = <6>;
        };
 
-       key-A {
+       key-a {
                keypad,row = <2>;
                keypad,column = <6>;
                linux,code = <30>;
        };
 
-       key-B {
+       key-b {
                keypad,row = <2>;
                keypad,column = <7>;
                linux,code = <48>;
        };
 
-       key-C {
+       key-c {
                keypad,row = <0>;
                keypad,column = <5>;
                linux,code = <46>;
        };
 
-       key-D {
+       key-d {
                keypad,row = <2>;
                keypad,column = <5>;
                linux,code = <32>;
        };
 
-       key-E {
+       key-e {
                keypad,row = <0>;
                keypad,column = <7>;
                linux,code = <18>;
index 99c84be..b9e7c49 100644 (file)
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
+                       fifo-depth = <256>;
                };
 
                spi_1: spi@12d30000 {
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
+                       fifo-depth = <64>;
                };
 
                spi_2: spi@12d40000 {
                        clock-names = "spi", "spi_busclk0";
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi2_bus>;
+                       fifo-depth = <64>;
                };
 
                mmc_0: mmc@12200000 {
index 25ed903..196c6d0 100644 (file)
                        pinctrl-0 = <&spi0_bus>;
                        clocks = <&clock CLK_SPI0>, <&clock CLK_SCLK_SPI0>;
                        clock-names = "spi", "spi_busclk0";
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi1_bus>;
                        clocks = <&clock CLK_SPI1>, <&clock CLK_SCLK_SPI1>;
                        clock-names = "spi", "spi_busclk0";
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi2_bus>;
                        clocks = <&clock CLK_SPI2>, <&clock CLK_SCLK_SPI2>;
                        clock-names = "spi", "spi_busclk0";
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 9bbbdce..bb01986 100644 (file)
        samsung,color-depth = <1>;
        samsung,link-rate = <0x0a>;
        samsung,lane-count = <2>;
-       samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+       hpd-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
 
        ports {
                port {
index ed560c9..34e8a3d 100644 (file)
@@ -72,7 +72,7 @@
                #size-cells = <1>;
                ranges;
 
-               onenand: onenand@b0600000 {
+               onenand: nand-controller@b0600000 {
                        compatible = "samsung,s5pv210-onenand";
                        reg = <0xb0600000 0x2000>,
                                <0xb0000000 0x20000>,
@@ -82,7 +82,7 @@
                        clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
                        clock-names = "bus", "onenand";
                        #address-cells = <1>;
-                       #size-cells = <1>;
+                       #size-cells = <0>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi0_bus>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        pinctrl-0 = <&spi1_bus>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 65c72b6..2537b3d 100644 (file)
                        status = "disabled";
                };
 
-               can3: can@40003400 {
-                       compatible = "st,stm32f4-bxcan";
-                       reg = <0x40003400 0x200>;
-                       interrupts = <104>, <105>, <106>, <107>;
-                       interrupt-names = "tx", "rx0", "rx1", "sce";
-                       resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
-                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
-                       st,gcan = <&gcan3>;
-                       status = "disabled";
-               };
-
-               gcan3: gcan@40003600 {
-                       compatible = "st,stm32f4-gcan", "syscon";
-                       reg = <0x40003600 0x200>;
-                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
-               };
-
                spi2: spi@40003800 {
                        #address-cells = <1>;
                        #size-cells = <0>;
index 4e7d903..e8cbb99 100644 (file)
@@ -7,6 +7,23 @@
 
 / {
        soc {
+               can3: can@40003400 {
+                       compatible = "st,stm32f4-bxcan";
+                       reg = <0x40003400 0x200>;
+                       interrupts = <104>, <105>, <106>, <107>;
+                       interrupt-names = "tx", "rx0", "rx1", "sce";
+                       resets = <&rcc STM32F7_APB1_RESET(CAN3)>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
+                       st,gcan = <&gcan3>;
+                       status = "disabled";
+               };
+
+               gcan3: gcan@40003600 {
+                       compatible = "st,stm32f4-gcan", "syscon";
+                       reg = <0x40003600 0x200>;
+                       clocks = <&rcc 0 STM32F7_APB1_CLOCK(CAN3)>;
+               };
+
                dsi: dsi@40016c00 {
                        compatible = "st,stm32-dsi";
                        reg = <0x40016c00 0x800>;
index 27e0c38..32c5d8a 100644 (file)
                };
        };
 
+       ltdc_pins_a: ltdc-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('D',  9, AF13)>, /* LCD_CLK */
+                                <STM32_PINMUX('C',  6, AF14)>, /* LCD_HSYNC */
+                                <STM32_PINMUX('G',  4, AF11)>, /* LCD_VSYNC */
+                                <STM32_PINMUX('H',  9, AF11)>, /* LCD_DE */
+                                <STM32_PINMUX('G',  7, AF14)>, /* LCD_R2 */
+                                <STM32_PINMUX('B', 12, AF13)>, /* LCD_R3 */
+                                <STM32_PINMUX('D', 14, AF14)>, /* LCD_R4 */
+                                <STM32_PINMUX('E',  7, AF14)>, /* LCD_R5 */
+                                <STM32_PINMUX('E', 13, AF14)>, /* LCD_R6 */
+                                <STM32_PINMUX('E',  9, AF14)>, /* LCD_R7 */
+                                <STM32_PINMUX('H', 13, AF14)>, /* LCD_G2 */
+                                <STM32_PINMUX('F',  3, AF14)>, /* LCD_G3 */
+                                <STM32_PINMUX('D',  5, AF14)>, /* LCD_G4 */
+                                <STM32_PINMUX('G',  0, AF14)>, /* LCD_G5 */
+                                <STM32_PINMUX('C',  7, AF14)>, /* LCD_G6 */
+                                <STM32_PINMUX('A', 15, AF11)>, /* LCD_G7 */
+                                <STM32_PINMUX('D', 10, AF14)>, /* LCD_B2 */
+                                <STM32_PINMUX('F',  2, AF14)>, /* LCD_B3 */
+                                <STM32_PINMUX('H', 14, AF11)>, /* LCD_B4 */
+                                <STM32_PINMUX('E',  0, AF14)>, /* LCD_B5 */
+                                <STM32_PINMUX('B',  6, AF7)>,  /* LCD_B6 */
+                                <STM32_PINMUX('F',  1, AF13)>; /* LCD_B7 */
+                       bias-disable;
+                       drive-push-pull;
+                       slew-rate = <0>;
+               };
+       };
+
+       ltdc_sleep_pins_a: ltdc-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('D',  9, ANALOG)>, /* LCD_CLK */
+                                <STM32_PINMUX('C',  6, ANALOG)>, /* LCD_HSYNC */
+                                <STM32_PINMUX('G',  4, ANALOG)>, /* LCD_VSYNC */
+                                <STM32_PINMUX('H',  9, ANALOG)>, /* LCD_DE */
+                                <STM32_PINMUX('G',  7, ANALOG)>, /* LCD_R2 */
+                                <STM32_PINMUX('B', 12, ANALOG)>, /* LCD_R3 */
+                                <STM32_PINMUX('D', 14, ANALOG)>, /* LCD_R4 */
+                                <STM32_PINMUX('E',  7, ANALOG)>, /* LCD_R5 */
+                                <STM32_PINMUX('E', 13, ANALOG)>, /* LCD_R6 */
+                                <STM32_PINMUX('E',  9, ANALOG)>, /* LCD_R7 */
+                                <STM32_PINMUX('H', 13, ANALOG)>, /* LCD_G2 */
+                                <STM32_PINMUX('F',  3, ANALOG)>, /* LCD_G3 */
+                                <STM32_PINMUX('D',  5, ANALOG)>, /* LCD_G4 */
+                                <STM32_PINMUX('G',  0, ANALOG)>, /* LCD_G5 */
+                                <STM32_PINMUX('C',  7, ANALOG)>, /* LCD_G6 */
+                                <STM32_PINMUX('A', 15, ANALOG)>, /* LCD_G7 */
+                                <STM32_PINMUX('D', 10, ANALOG)>, /* LCD_B2 */
+                                <STM32_PINMUX('F',  2, ANALOG)>, /* LCD_B3 */
+                                <STM32_PINMUX('H', 14, ANALOG)>, /* LCD_B4 */
+                                <STM32_PINMUX('E',  0, ANALOG)>, /* LCD_B5 */
+                                <STM32_PINMUX('B',  6, ANALOG)>, /* LCD_B6 */
+                                <STM32_PINMUX('F',  1, ANALOG)>; /* LCD_B7 */
+               };
+       };
+
        mcp23017_pins_a: mcp23017-0 {
                pins {
                        pinmux = <STM32_PINMUX('G', 12, GPIO)>;
index 3900f32..ecfa120 100644 (file)
                        dma-channels = <16>;
                };
 
-               adc_2: adc@48004000 {
-                       compatible = "st,stm32mp13-adc-core";
-                       reg = <0x48004000 0x400>;
-                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc ADC2>, <&rcc ADC2_K>;
-                       clock-names = "bus", "adc";
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-
-                       adc2: adc@0 {
-                               compatible = "st,stm32mp13-adc";
-                               #io-channel-cells = <1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0x0>;
-                               interrupt-parent = <&adc_2>;
-                               interrupts = <0>;
-                               dmas = <&dmamux1 10 0x400 0x80000001>;
-                               dma-names = "rx";
-                               status = "disabled";
-
-                               channel@13 {
-                                       reg = <13>;
-                                       label = "vrefint";
-                               };
-                               channel@14 {
-                                       reg = <14>;
-                                       label = "vddcore";
-                               };
-                               channel@16 {
-                                       reg = <16>;
-                                       label = "vddcpu";
-                               };
-                               channel@17 {
-                                       reg = <17>;
-                                       label = "vddq_ddr";
-                               };
-                       };
-               };
-
-               usbotg_hs: usb@49000000 {
-                       compatible = "st,stm32mp15-hsotg", "snps,dwc2";
-                       reg = <0x49000000 0x40000>;
-                       clocks = <&rcc USBO_K>;
-                       clock-names = "otg";
-                       resets = <&rcc USBO_R>;
-                       reset-names = "dwc2";
-                       interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       g-rx-fifo-size = <512>;
-                       g-np-tx-fifo-size = <32>;
-                       g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
-                       dr_mode = "otg";
-                       otg-rev = <0x200>;
-                       usb33d-supply = <&scmi_usb33>;
-                       status = "disabled";
-               };
-
-               usart1: serial@4c000000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4c000000 0x400>;
-                       interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART1_K>;
-                       resets = <&rcc USART1_R>;
-                       wakeup-source;
-                       dmas = <&dmamux1 41 0x400 0x5>,
-                              <&dmamux1 42 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               usart2: serial@4c001000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4c001000 0x400>;
-                       interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART2_K>;
-                       resets = <&rcc USART2_R>;
-                       wakeup-source;
-                       dmas = <&dmamux1 43 0x400 0x5>,
-                              <&dmamux1 44 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2s4: audio-controller@4c002000 {
-                       compatible = "st,stm32h7-i2s";
-                       reg = <0x4c002000 0x400>;
-                       #sound-dai-cells = <0>;
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 83 0x400 0x01>,
-                              <&dmamux1 84 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi4: spi@4c002000 {
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4c002000 0x400>;
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI4_K>;
-                       resets = <&rcc SPI4_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 83 0x400 0x01>,
-                              <&dmamux1 84 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi5: spi@4c003000 {
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4c003000 0x400>;
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI5_K>;
-                       resets = <&rcc SPI5_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 85 0x400 0x01>,
-                              <&dmamux1 86 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2c3: i2c@4c004000 {
-                       compatible = "st,stm32mp13-i2c";
-                       reg = <0x4c004000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C3_K>;
-                       resets = <&rcc I2C3_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 73 0x400 0x1>,
-                              <&dmamux1 74 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       st,syscfg-fmp = <&syscfg 0x4 0x4>;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               i2c4: i2c@4c005000 {
-                       compatible = "st,stm32mp13-i2c";
-                       reg = <0x4c005000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C4_K>;
-                       resets = <&rcc I2C4_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 75 0x400 0x1>,
-                              <&dmamux1 76 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       st,syscfg-fmp = <&syscfg 0x4 0x8>;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               i2c5: i2c@4c006000 {
-                       compatible = "st,stm32mp13-i2c";
-                       reg = <0x4c006000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C5_K>;
-                       resets = <&rcc I2C5_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       dmas = <&dmamux1 115 0x400 0x1>,
-                              <&dmamux1 116 0x400 0x1>;
-                       dma-names = "rx", "tx";
-                       st,syscfg-fmp = <&syscfg 0x4 0x10>;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               timers12: timer@4c007000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c007000 0x400>;
-                       interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM12_K>;
-                       clock-names = "int";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@11 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <11>;
-                               status = "disabled";
-                       };
-               };
-
-               timers13: timer@4c008000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c008000 0x400>;
-                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM13_K>;
-                       clock-names = "int";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@12 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <12>;
-                               status = "disabled";
-                       };
-               };
-
-               timers14: timer@4c009000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c009000 0x400>;
-                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM14_K>;
-                       clock-names = "int";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@13 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <13>;
-                               status = "disabled";
-                       };
-               };
-
-               timers15: timer@4c00a000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c00a000 0x400>;
-                       interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM15_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 105 0x400 0x1>,
-                              <&dmamux1 106 0x400 0x1>,
-                              <&dmamux1 107 0x400 0x1>,
-                              <&dmamux1 108 0x400 0x1>;
-                       dma-names = "ch1", "up", "trig", "com";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@14 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <14>;
-                               status = "disabled";
-                       };
-               };
-
-               timers16: timer@4c00b000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c00b000 0x400>;
-                       interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM16_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 109 0x400 0x1>,
-                              <&dmamux1 110 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@15 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <15>;
-                               status = "disabled";
-                       };
-               };
-
-               timers17: timer@4c00c000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x4c00c000 0x400>;
-                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM17_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 111 0x400 0x1>,
-                              <&dmamux1 112 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@16 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <16>;
-                               status = "disabled";
-                       };
-               };
-
                rcc: rcc@50000000 {
                        compatible = "st,stm32mp13-rcc", "syscon";
                        reg = <0x50000000 0x1000>;
                                 <&scmi_clk CK_SCMI_LSI>;
                };
 
+               pwr_regulators: pwr@50001000 {
+                       compatible = "st,stm32mp1,pwr-reg";
+                       reg = <0x50001000 0x10>;
+                       status = "disabled";
+
+                       reg11: reg11 {
+                               regulator-name = "reg11";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                       };
+
+                       reg18: reg18 {
+                               regulator-name = "reg18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                       };
+
+                       usb33: usb33 {
+                               regulator-name = "usb33";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+               };
+
                exti: interrupt-controller@5000d000 {
                        compatible = "st,stm32mp13-exti", "syscon";
                        interrupt-controller;
                        clocks = <&rcc SYSCFG>;
                };
 
-               lptimer2: timer@50021000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50021000 0x400>;
-                       interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM2_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       trigger@1 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <1>;
-                               status = "disabled";
-                       };
-
-                       counter {
-                               compatible = "st,stm32-lptimer-counter";
-                               status = "disabled";
-                       };
-
-                       timer {
-                               compatible = "st,stm32-lptimer-timer";
-                               status = "disabled";
-                       };
-               };
-
-               lptimer3: timer@50022000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50022000 0x400>;
-                       interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM3_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       trigger@2 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <2>;
-                               status = "disabled";
-                       };
-
-                       timer {
-                               compatible = "st,stm32-lptimer-timer";
-                               status = "disabled";
-                       };
-               };
-
                lptimer4: timer@50023000 {
                        compatible = "st,stm32-lptimer";
                        reg = <0x50023000 0x400>;
                        };
                };
 
-               hash: hash@54003000 {
-                       compatible = "st,stm32mp13-hash";
-                       reg = <0x54003000 0x400>;
-                       interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc HASH1>;
-                       resets = <&rcc HASH1_R>;
-                       dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
-                       dma-names = "in";
-                       status = "disabled";
-               };
-
-               rng: rng@54004000 {
-                       compatible = "st,stm32mp13-rng";
-                       reg = <0x54004000 0x400>;
-                       clocks = <&rcc RNG1_K>;
-                       resets = <&rcc RNG1_R>;
-                       status = "disabled";
-               };
-
                mdma: dma-controller@58000000 {
                        compatible = "st,stm32h7-mdma";
                        reg = <0x58000000 0x1000>;
                        dma-requests = <48>;
                };
 
-               fmc: memory-controller@58002000 {
-                       compatible = "st,stm32mp1-fmc2-ebi";
-                       reg = <0x58002000 0x1000>;
-                       ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
-                                <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
-                                <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
-                                <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
-                                <4 0 0x80000000 0x10000000>; /* NAND */
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-                       clocks = <&rcc FMC_K>;
-                       resets = <&rcc FMC_R>;
-                       status = "disabled";
-
-                       nand-controller@4,0 {
-                               compatible = "st,stm32mp1-fmc2-nfc";
-                               reg = <4 0x00000000 0x1000>,
-                                     <4 0x08010000 0x1000>,
-                                     <4 0x08020000 0x1000>,
-                                     <4 0x01000000 0x1000>,
-                                     <4 0x09010000 0x1000>,
-                                     <4 0x09020000 0x1000>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
-                                      <&mdma 24 0x2 0x12000a08 0x0 0x0>,
-                                      <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
-                               dma-names = "tx", "rx", "ecc";
-                               status = "disabled";
-                       };
-               };
-
-               qspi: spi@58003000 {
-                       compatible = "st,stm32f469-qspi";
-                       reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
-                       reg-names = "qspi", "qspi_mm";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
-                              <&mdma 26 0x2 0x10100008 0x0 0x0>;
-                       dma-names = "tx", "rx";
-                       clocks = <&rcc QSPI_K>;
-                       resets = <&rcc QSPI_R>;
-                       status = "disabled";
-               };
-
-               sdmmc1: mmc@58005000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x20253180>;
-                       reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
-                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC1_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC1_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <130000000>;
-                       status = "disabled";
-               };
-
-               sdmmc2: mmc@58007000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x20253180>;
-                       reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
-                       interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC2_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC2_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <130000000>;
-                       status = "disabled";
-               };
-
                crc1: crc@58009000 {
                        compatible = "st,stm32f7-crc";
                        reg = <0x58009000 0x400>;
                        status = "disabled";
                };
 
-               usbphyc: usbphyc@5a006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       #clock-cells = <0>;
-                       compatible = "st,stm32mp1-usbphyc";
-                       reg = <0x5a006000 0x1000>;
-                       clocks = <&rcc USBPHY_K>;
-                       resets = <&rcc USBPHY_R>;
-                       vdda1v1-supply = <&scmi_reg11>;
-                       vdda1v8-supply = <&scmi_reg18>;
-                       status = "disabled";
-
-                       usbphyc_port0: usb-phy@0 {
-                               #phy-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       usbphyc_port1: usb-phy@1 {
-                               #phy-cells = <1>;
-                               reg = <1>;
-                       };
-               };
-
                rtc: rtc@5c004000 {
                        compatible = "st,stm32mp1-rtc";
                        reg = <0x5c004000 0x400>;
                        };
                };
 
+               etzpc: bus@5c007000 {
+                       compatible = "st,stm32-etzpc", "simple-bus";
+                       reg = <0x5c007000 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       #access-controller-cells = <1>;
+                       ranges;
+
+                       adc_2: adc@48004000 {
+                               compatible = "st,stm32mp13-adc-core";
+                               reg = <0x48004000 0x400>;
+                               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc ADC2>, <&rcc ADC2_K>;
+                               clock-names = "bus", "adc";
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 33>;
+                               status = "disabled";
+
+                               adc2: adc@0 {
+                                       compatible = "st,stm32mp13-adc";
+                                       #io-channel-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+                                       interrupt-parent = <&adc_2>;
+                                       interrupts = <0>;
+                                       dmas = <&dmamux1 10 0x400 0x80000001>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+
+                                       channel@13 {
+                                               reg = <13>;
+                                               label = "vrefint";
+                                       };
+                                       channel@14 {
+                                               reg = <14>;
+                                               label = "vddcore";
+                                       };
+                                       channel@16 {
+                                               reg = <16>;
+                                               label = "vddcpu";
+                                       };
+                                       channel@17 {
+                                               reg = <17>;
+                                               label = "vddq_ddr";
+                                       };
+                               };
+                       };
+
+                       usbotg_hs: usb@49000000 {
+                               compatible = "st,stm32mp15-hsotg", "snps,dwc2";
+                               reg = <0x49000000 0x40000>;
+                               clocks = <&rcc USBO_K>;
+                               clock-names = "otg";
+                               resets = <&rcc USBO_R>;
+                               reset-names = "dwc2";
+                               interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                               g-rx-fifo-size = <512>;
+                               g-np-tx-fifo-size = <32>;
+                               g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
+                               dr_mode = "otg";
+                               otg-rev = <0x200>;
+                               usb33d-supply = <&scmi_usb33>;
+                               access-controllers = <&etzpc 34>;
+                               status = "disabled";
+                       };
+
+                       usart1: serial@4c000000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4c000000 0x400>;
+                               interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART1_K>;
+                               resets = <&rcc USART1_R>;
+                               wakeup-source;
+                               dmas = <&dmamux1 41 0x400 0x5>,
+                               <&dmamux1 42 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 16>;
+                               status = "disabled";
+                       };
+
+                       usart2: serial@4c001000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4c001000 0x400>;
+                               interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART2_K>;
+                               resets = <&rcc USART2_R>;
+                               wakeup-source;
+                               dmas = <&dmamux1 43 0x400 0x5>,
+                               <&dmamux1 44 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 17>;
+                               status = "disabled";
+                       };
+
+                       i2s4: audio-controller@4c002000 {
+                               compatible = "st,stm32h7-i2s";
+                               reg = <0x4c002000 0x400>;
+                               #sound-dai-cells = <0>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 83 0x400 0x01>,
+                               <&dmamux1 84 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 13>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@4c002000 {
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4c002000 0x400>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI4_K>;
+                               resets = <&rcc SPI4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 83 0x400 0x01>,
+                                      <&dmamux1 84 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 18>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@4c003000 {
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4c003000 0x400>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI5_K>;
+                               resets = <&rcc SPI5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 85 0x400 0x01>,
+                                      <&dmamux1 86 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 19>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@4c004000 {
+                               compatible = "st,stm32mp13-i2c";
+                               reg = <0x4c004000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C3_K>;
+                               resets = <&rcc I2C3_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 73 0x400 0x1>,
+                                      <&dmamux1 74 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               st,syscfg-fmp = <&syscfg 0x4 0x4>;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 20>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@4c005000 {
+                               compatible = "st,stm32mp13-i2c";
+                               reg = <0x4c005000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C4_K>;
+                               resets = <&rcc I2C4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 75 0x400 0x1>,
+                                      <&dmamux1 76 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               st,syscfg-fmp = <&syscfg 0x4 0x8>;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 21>;
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@4c006000 {
+                               compatible = "st,stm32mp13-i2c";
+                               reg = <0x4c006000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C5_K>;
+                               resets = <&rcc I2C5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               dmas = <&dmamux1 115 0x400 0x1>,
+                                      <&dmamux1 116 0x400 0x1>;
+                               dma-names = "rx", "tx";
+                               st,syscfg-fmp = <&syscfg 0x4 0x10>;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 22>;
+                               status = "disabled";
+                       };
+
+                       timers12: timer@4c007000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c007000 0x400>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM12_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 23>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@11 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <11>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers13: timer@4c008000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c008000 0x400>;
+                               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM13_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 24>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@12 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <12>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers14: timer@4c009000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c009000 0x400>;
+                               interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM14_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 25>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@13 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <13>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers15: timer@4c00a000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c00a000 0x400>;
+                               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM15_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 105 0x400 0x1>,
+                               <&dmamux1 106 0x400 0x1>,
+                               <&dmamux1 107 0x400 0x1>,
+                               <&dmamux1 108 0x400 0x1>;
+                               dma-names = "ch1", "up", "trig", "com";
+                               access-controllers = <&etzpc 26>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@14 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <14>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers16: timer@4c00b000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c00b000 0x400>;
+                               interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM16_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 109 0x400 0x1>,
+                               <&dmamux1 110 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 27>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@15 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <15>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       timers17: timer@4c00c000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x4c00c000 0x400>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM17_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 111 0x400 0x1>,
+                                      <&dmamux1 112 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 28>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@16 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <16>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       lptimer2: timer@50021000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50021000 0x400>;
+                               interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM2_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 1>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               trigger@1 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
+
+                               counter {
+                                       compatible = "st,stm32-lptimer-counter";
+                                       status = "disabled";
+                               };
+
+                               timer {
+                                       compatible = "st,stm32-lptimer-timer";
+                                       status = "disabled";
+                               };
+                       };
+
+                       lptimer3: timer@50022000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50022000 0x400>;
+                               interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM3_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 2>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               trigger@2 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+
+                               timer {
+                                       compatible = "st,stm32-lptimer-timer";
+                                       status = "disabled";
+                               };
+                       };
+
+                       hash: hash@54003000 {
+                               compatible = "st,stm32mp13-hash";
+                               reg = <0x54003000 0x400>;
+                               interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc HASH1>;
+                               resets = <&rcc HASH1_R>;
+                               dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
+                               dma-names = "in";
+                               access-controllers = <&etzpc 41>;
+                               status = "disabled";
+                       };
+
+                       rng: rng@54004000 {
+                               compatible = "st,stm32mp13-rng";
+                               reg = <0x54004000 0x400>;
+                               clocks = <&rcc RNG1_K>;
+                               resets = <&rcc RNG1_R>;
+                               access-controllers = <&etzpc 40>;
+                               status = "disabled";
+                       };
+
+                       fmc: memory-controller@58002000 {
+                               compatible = "st,stm32mp1-fmc2-ebi";
+                               reg = <0x58002000 0x1000>;
+                               ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
+                                        <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
+                                        <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
+                                        <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
+                                        <4 0 0x80000000 0x10000000>; /* NAND */
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               clocks = <&rcc FMC_K>;
+                               resets = <&rcc FMC_R>;
+                               access-controllers = <&etzpc 54>;
+                               status = "disabled";
+
+                               nand-controller@4,0 {
+                                       compatible = "st,stm32mp1-fmc2-nfc";
+                                       reg = <4 0x00000000 0x1000>,
+                                             <4 0x08010000 0x1000>,
+                                             <4 0x08020000 0x1000>,
+                                             <4 0x01000000 0x1000>,
+                                             <4 0x09010000 0x1000>,
+                                             <4 0x09020000 0x1000>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
+                                              <&mdma 24 0x2 0x12000a08 0x0 0x0>,
+                                              <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
+                                       dma-names = "tx", "rx", "ecc";
+                                       status = "disabled";
+                               };
+                       };
+
+                       qspi: spi@58003000 {
+                               compatible = "st,stm32f469-qspi";
+                               reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
+                               reg-names = "qspi", "qspi_mm";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
+                                      <&mdma 26 0x2 0x10100008 0x0 0x0>;
+                               dma-names = "tx", "rx";
+                               clocks = <&rcc QSPI_K>;
+                               resets = <&rcc QSPI_R>;
+                               access-controllers = <&etzpc 55>;
+                               status = "disabled";
+                       };
+
+                       sdmmc1: mmc@58005000 {
+                               compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x20253180>;
+                               reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SDMMC1_K>;
+                               clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC1_R>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <130000000>;
+                               access-controllers = <&etzpc 50>;
+                               status = "disabled";
+                       };
+
+                       sdmmc2: mmc@58007000 {
+                               compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x20253180>;
+                               reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
+                               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SDMMC2_K>;
+                               clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC2_R>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <130000000>;
+                               access-controllers = <&etzpc 51>;
+                               status = "disabled";
+                       };
+
+                       usbphyc: usbphyc@5a006000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               #clock-cells = <0>;
+                               compatible = "st,stm32mp1-usbphyc";
+                               reg = <0x5a006000 0x1000>;
+                               clocks = <&rcc USBPHY_K>;
+                               resets = <&rcc USBPHY_R>;
+                               vdda1v1-supply = <&scmi_reg11>;
+                               vdda1v8-supply = <&scmi_reg18>;
+                               access-controllers = <&etzpc 5>;
+                               status = "disabled";
+
+                               usbphyc_port0: usb-phy@0 {
+                                       #phy-cells = <0>;
+                                       reg = <0>;
+                               };
+
+                               usbphyc_port1: usb-phy@1 {
+                                       #phy-cells = <1>;
+                                       reg = <1>;
+                               };
+                       };
+               };
+
                /*
                 * Break node order to solve dependency probe issue between
                 * pinctrl and exti.
index df451c3..3e394c8 100644 (file)
                        bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
                        status = "disabled";
                };
+       };
+};
 
-               adc_1: adc@48003000 {
-                       compatible = "st,stm32mp13-adc-core";
-                       reg = <0x48003000 0x400>;
-                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc ADC1>, <&rcc ADC1_K>;
-                       clock-names = "bus", "adc";
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
+&etzpc {
+       adc_1: adc@48003000 {
+               compatible = "st,stm32mp13-adc-core";
+               reg = <0x48003000 0x400>;
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc ADC1>, <&rcc ADC1_K>;
+               clock-names = "bus", "adc";
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               access-controllers = <&etzpc 32>;
+               status = "disabled";
+
+               adc1: adc@0 {
+                       compatible = "st,stm32mp13-adc";
+                       #io-channel-cells = <1>;
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       reg = <0x0>;
+                       interrupt-parent = <&adc_1>;
+                       interrupts = <0>;
+                       dmas = <&dmamux1 9 0x400 0x80000001>;
+                       dma-names = "rx";
                        status = "disabled";
 
-                       adc1: adc@0 {
-                               compatible = "st,stm32mp13-adc";
-                               #io-channel-cells = <1>;
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0x0>;
-                               interrupt-parent = <&adc_1>;
-                               interrupts = <0>;
-                               dmas = <&dmamux1 9 0x400 0x80000001>;
-                               dma-names = "rx";
-                               status = "disabled";
-
-                               channel@18 {
-                                       reg = <18>;
-                                       label = "vrefint";
-                               };
+                       channel@18 {
+                               reg = <18>;
+                               label = "vrefint";
                        };
                };
        };
index 68d32f9..834a4d5 100644 (file)
                        port {
                        };
                };
+
+               ltdc: display-controller@5a001000 {
+                       compatible = "st,stm32-ltdc";
+                       reg = <0x5a001000 0x400>;
+                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc LTDC_PX>;
+                       clock-names = "lcd";
+                       resets = <&scmi_reset RST_SCMI_LTDC>;
+                       status = "disabled";
+               };
        };
 };
index 5217121..567e53a 100644 (file)
                        default-state = "off";
                };
        };
+
+       panel_backlight: panel-backlight {
+               compatible = "gpio-backlight";
+               gpios = <&gpioe 12 GPIO_ACTIVE_HIGH>;
+               default-on;
+               status = "okay";
+       };
+
+       panel_rgb: panel-rgb {
+               compatible = "rocktech,rk043fn48h";
+               enable-gpios = <&gpioi 7 GPIO_ACTIVE_HIGH>;
+               backlight = <&panel_backlight>;
+               power-supply = <&scmi_v3v3_sw>;
+               status = "okay";
+
+               width-mm = <105>;
+               height-mm = <67>;
+
+               panel-timing {
+                       clock-frequency = <10000000>;
+                       hactive = <480>;
+                       hback-porch = <43>;
+                       hfront-porch = <10>;
+                       hsync-len = <1>;
+                       hsync-active = <0>;
+                       vactive = <272>;
+                       vback-porch = <26>;
+                       vfront-porch = <4>;
+                       vsync-len = <10>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+
+               port {
+                       panel_in_rgb: endpoint {
+                               remote-endpoint = <&ltdc_out_rgb>;
+                       };
+               };
+       };
 };
 
 &adc_1 {
        status = "okay";
 };
 
+&ltdc {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&ltdc_pins_a>;
+       pinctrl-1 = <&ltdc_sleep_pins_a>;
+       status = "okay";
+
+       port {
+               ltdc_out_rgb: endpoint {
+                       remote-endpoint = <&panel_in_rgb>;
+               };
+       };
+};
+
 &rtc {
        status = "okay";
 };
index 4d00e75..a8bd5fe 100644 (file)
@@ -4,15 +4,14 @@
  * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  */
 
-/ {
-       soc {
-               cryp: crypto@54002000 {
-                       compatible = "st,stm32mp1-cryp";
-                       reg = <0x54002000 0x400>;
-                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CRYP1>;
-                       resets = <&rcc CRYP1_R>;
-                       status = "disabled";
-               };
+&etzpc {
+       cryp: crypto@54002000 {
+               compatible = "st,stm32mp1-cryp";
+               reg = <0x54002000 0x400>;
+               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CRYP1>;
+               resets = <&rcc CRYP1_R>;
+               access-controllers = <&etzpc 42>;
+               status = "disabled";
        };
 };
index 4d00e75..a8bd5fe 100644 (file)
@@ -4,15 +4,14 @@
  * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  */
 
-/ {
-       soc {
-               cryp: crypto@54002000 {
-                       compatible = "st,stm32mp1-cryp";
-                       reg = <0x54002000 0x400>;
-                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CRYP1>;
-                       resets = <&rcc CRYP1_R>;
-                       status = "disabled";
-               };
+&etzpc {
+       cryp: crypto@54002000 {
+               compatible = "st,stm32mp1-cryp";
+               reg = <0x54002000 0x400>;
+               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CRYP1>;
+               resets = <&rcc CRYP1_R>;
+               access-controllers = <&etzpc 42>;
+               status = "disabled";
        };
 };
index fa4cbd3..16bd6ee 100644 (file)
                interrupt-parent = <&intc>;
                ranges;
 
-               timers2: timer@40000000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40000000 0x400>;
-                       interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM2_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 18 0x400 0x1>,
-                              <&dmamux1 19 0x400 0x1>,
-                              <&dmamux1 20 0x400 0x1>,
-                              <&dmamux1 21 0x400 0x1>,
-                              <&dmamux1 22 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4", "up";
+               ipcc: mailbox@4c001000 {
+                       compatible = "st,stm32mp1-ipcc";
+                       #mbox-cells = <1>;
+                       reg = <0x4c001000 0x400>;
+                       st,proc-id = <0>;
+                       interrupts-extended =
+                               <&exti 61 1>,
+                               <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "rx", "tx";
+                       clocks = <&rcc IPCC>;
+                       wakeup-source;
                        status = "disabled";
+               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@1 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <1>;
-                               status = "disabled";
-                       };
-
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
-                       };
+               rcc: rcc@50000000 {
+                       compatible = "st,stm32mp1-rcc", "syscon";
+                       reg = <0x50000000 0x1000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
                };
 
-               timers3: timer@40001000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40001000 0x400>;
-                       interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM3_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 23 0x400 0x1>,
-                              <&dmamux1 24 0x400 0x1>,
-                              <&dmamux1 25 0x400 0x1>,
-                              <&dmamux1 26 0x400 0x1>,
-                              <&dmamux1 27 0x400 0x1>,
-                              <&dmamux1 28 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
-                       status = "disabled";
+               pwr_regulators: pwr@50001000 {
+                       compatible = "st,stm32mp1,pwr-reg";
+                       reg = <0x50001000 0x10>;
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                       reg11: reg11 {
+                               regulator-name = "reg11";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
                        };
 
-                       timer@2 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <2>;
-                               status = "disabled";
+                       reg18: reg18 {
+                               regulator-name = "reg18";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
                        };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
+                       usb33: usb33 {
+                               regulator-name = "usb33";
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
                        };
                };
 
-               timers4: timer@40002000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40002000 0x400>;
-                       interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM4_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 29 0x400 0x1>,
-                              <&dmamux1 30 0x400 0x1>,
-                              <&dmamux1 31 0x400 0x1>,
-                              <&dmamux1 32 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4";
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
+               pwr_mcu: pwr_mcu@50001014 {
+                       compatible = "st,stm32mp151-pwr-mcu", "syscon";
+                       reg = <0x50001014 0x4>;
+               };
 
-                       timer@3 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <3>;
-                               status = "disabled";
-                       };
+               exti: interrupt-controller@5000d000 {
+                       compatible = "st,stm32mp1-exti", "syscon";
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       reg = <0x5000d000 0x400>;
+               };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
-                       };
+               syscfg: syscon@50020000 {
+                       compatible = "st,stm32mp157-syscfg", "syscon";
+                       reg = <0x50020000 0x400>;
+                       clocks = <&rcc SYSCFG>;
                };
 
-               timers5: timer@40003000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40003000 0x400>;
-                       interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM5_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 55 0x400 0x1>,
-                              <&dmamux1 56 0x400 0x1>,
-                              <&dmamux1 57 0x400 0x1>,
-                              <&dmamux1 58 0x400 0x1>,
-                              <&dmamux1 59 0x400 0x1>,
-                              <&dmamux1 60 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+               dts: thermal@50028000 {
+                       compatible = "st,stm32-thermal";
+                       reg = <0x50028000 0x100>;
+                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc TMPSENS>;
+                       clock-names = "pclk";
+                       #thermal-sensor-cells = <0>;
                        status = "disabled";
+               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@4 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <4>;
-                               status = "disabled";
-                       };
-
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
-                       };
+               mdma1: dma-controller@58000000 {
+                       compatible = "st,stm32h7-mdma";
+                       reg = <0x58000000 0x1000>;
+                       interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc MDMA>;
+                       resets = <&rcc MDMA_R>;
+                       #dma-cells = <5>;
+                       dma-channels = <32>;
+                       dma-requests = <48>;
                };
 
-               timers6: timer@40004000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40004000 0x400>;
-                       interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM6_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 69 0x400 0x1>;
-                       dma-names = "up";
+               sdmmc1: mmc@58005000 {
+                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00253180>;
+                       reg = <0x58005000 0x1000>;
+                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc SDMMC1_K>;
+                       clock-names = "apb_pclk";
+                       resets = <&rcc SDMMC1_R>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <120000000>;
                        status = "disabled";
-
-                       timer@5 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <5>;
-                               status = "disabled";
-                       };
                };
 
-               timers7: timer@40005000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40005000 0x400>;
-                       interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM7_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 70 0x400 0x1>;
-                       dma-names = "up";
+               sdmmc2: mmc@58007000 {
+                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                       arm,primecell-periphid = <0x00253180>;
+                       reg = <0x58007000 0x1000>;
+                       interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc SDMMC2_K>;
+                       clock-names = "apb_pclk";
+                       resets = <&rcc SDMMC2_R>;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       max-frequency = <120000000>;
                        status = "disabled";
-
-                       timer@6 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <6>;
-                               status = "disabled";
-                       };
                };
 
-               timers12: timer@40006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40006000 0x400>;
-                       interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM12_K>;
-                       clock-names = "int";
+               crc1: crc@58009000 {
+                       compatible = "st,stm32f7-crc";
+                       reg = <0x58009000 0x400>;
+                       clocks = <&rcc CRC1>;
                        status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@11 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <11>;
-                               status = "disabled";
-                       };
                };
 
-               timers13: timer@40007000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40007000 0x400>;
-                       interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM13_K>;
-                       clock-names = "int";
+               usbh_ohci: usb@5800c000 {
+                       compatible = "generic-ohci";
+                       reg = <0x5800c000 0x1000>;
+                       clocks = <&usbphyc>, <&rcc USBH>;
+                       resets = <&rcc USBH_R>;
+                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
+                       phys = <&usbphyc_port0>;
+                       phy-names = "usb";
                        status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       timer@12 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <12>;
-                               status = "disabled";
-                       };
                };
 
-               timers14: timer@40008000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x40008000 0x400>;
-                       interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM14_K>;
-                       clock-names = "int";
+               usbh_ehci: usb@5800d000 {
+                       compatible = "generic-ehci";
+                       reg = <0x5800d000 0x1000>;
+                       clocks = <&usbphyc>, <&rcc USBH>;
+                       resets = <&rcc USBH_R>;
+                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
+                       companion = <&usbh_ohci>;
+                       phys = <&usbphyc_port0>;
+                       phy-names = "usb";
                        status = "disabled";
+               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
+               ltdc: display-controller@5a001000 {
+                       compatible = "st,stm32-ltdc";
+                       reg = <0x5a001000 0x400>;
+                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&rcc LTDC_PX>;
+                       clock-names = "lcd";
+                       resets = <&rcc LTDC_R>;
+                       status = "disabled";
+               };
 
-                       timer@13 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <13>;
-                               status = "disabled";
-                       };
+               iwdg2: watchdog@5a002000 {
+                       compatible = "st,stm32mp1-iwdg";
+                       reg = <0x5a002000 0x400>;
+                       clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
+                       clock-names = "pclk", "lsi";
+                       status = "disabled";
                };
 
-               lptimer1: timer@40009000 {
+               usbphyc: usbphyc@5a006000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x40009000 0x400>;
-                       interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM1_K>;
-                       clock-names = "mux";
-                       wakeup-source;
+                       #clock-cells = <0>;
+                       compatible = "st,stm32mp1-usbphyc";
+                       reg = <0x5a006000 0x1000>;
+                       clocks = <&rcc USBPHY_K>;
+                       resets = <&rcc USBPHY_R>;
+                       vdda1v1-supply = <&reg11>;
+                       vdda1v8-supply = <&reg18>;
                        status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
-                       };
-
-                       trigger@0 {
-                               compatible = "st,stm32-lptimer-trigger";
+                       usbphyc_port0: usb-phy@0 {
+                               #phy-cells = <0>;
                                reg = <0>;
-                               status = "disabled";
                        };
 
-                       counter {
-                               compatible = "st,stm32-lptimer-counter";
-                               status = "disabled";
+                       usbphyc_port1: usb-phy@1 {
+                               #phy-cells = <1>;
+                               reg = <1>;
                        };
                };
 
-               spi2: spi@4000b000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4000b000 0x400>;
-                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI2_K>;
-                       resets = <&rcc SPI2_R>;
-                       dmas = <&dmamux1 39 0x400 0x05>,
-                              <&dmamux1 40 0x400 0x05>;
-                       dma-names = "rx", "tx";
+               rtc: rtc@5c004000 {
+                       compatible = "st,stm32mp1-rtc";
+                       reg = <0x5c004000 0x400>;
+                       clocks = <&rcc RTCAPB>, <&rcc RTC>;
+                       clock-names = "pclk", "rtc_ck";
+                       interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
                        status = "disabled";
                };
 
-               i2s2: audio-controller@4000b000 {
-                       compatible = "st,stm32h7-i2s";
-                       #sound-dai-cells = <0>;
-                       reg = <0x4000b000 0x400>;
-                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 39 0x400 0x01>,
-                              <&dmamux1 40 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
+               bsec: efuse@5c005000 {
+                       compatible = "st,stm32mp15-bsec";
+                       reg = <0x5c005000 0x400>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       part_number_otp: part-number-otp@4 {
+                               reg = <0x4 0x1>;
+                       };
+                       vrefint: vrefin-cal@52 {
+                               reg = <0x52 0x2>;
+                       };
+                       ts_cal1: calib@5c {
+                               reg = <0x5c 0x2>;
+                       };
+                       ts_cal2: calib@5e {
+                               reg = <0x5e 0x2>;
+                       };
                };
 
-               spi3: spi@4000c000 {
+               etzpc: bus@5c007000 {
+                       compatible = "st,stm32-etzpc", "simple-bus";
+                       reg = <0x5c007000 0x400>;
                        #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x4000c000 0x400>;
-                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI3_K>;
-                       resets = <&rcc SPI3_R>;
-                       dmas = <&dmamux1 61 0x400 0x05>,
-                              <&dmamux1 62 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       #size-cells = <1>;
+                       #access-controller-cells = <1>;
+                       ranges;
 
-               i2s3: audio-controller@4000c000 {
-                       compatible = "st,stm32h7-i2s";
-                       #sound-dai-cells = <0>;
-                       reg = <0x4000c000 0x400>;
-                       interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 61 0x400 0x01>,
-                              <&dmamux1 62 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       timers2: timer@40000000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40000000 0x400>;
+                               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM2_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 18 0x400 0x1>,
+                                      <&dmamux1 19 0x400 0x1>,
+                                      <&dmamux1 20 0x400 0x1>,
+                                      <&dmamux1 21 0x400 0x1>,
+                                      <&dmamux1 22 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4", "up";
+                               access-controllers = <&etzpc 16>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               spdifrx: audio-controller@4000d000 {
-                       compatible = "st,stm32h7-spdifrx";
-                       #sound-dai-cells = <0>;
-                       reg = <0x4000d000 0x400>;
-                       clocks = <&rcc SPDIF_K>;
-                       clock-names = "kclk";
-                       interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 93 0x400 0x01>,
-                              <&dmamux1 94 0x400 0x01>;
-                       dma-names = "rx", "rx-ctrl";
-                       status = "disabled";
-               };
+                               timer@1 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
 
-               usart2: serial@4000e000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4000e000 0x400>;
-                       interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART2_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 43 0x400 0x15>,
-                              <&dmamux1 44 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               usart3: serial@4000f000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x4000f000 0x400>;
-                       interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART3_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 45 0x400 0x15>,
-                              <&dmamux1 46 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       timers3: timer@40001000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40001000 0x400>;
+                               interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM3_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 23 0x400 0x1>,
+                                      <&dmamux1 24 0x400 0x1>,
+                                      <&dmamux1 25 0x400 0x1>,
+                                      <&dmamux1 26 0x400 0x1>,
+                                      <&dmamux1 27 0x400 0x1>,
+                                      <&dmamux1 28 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+                               access-controllers = <&etzpc 17>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               uart4: serial@40010000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40010000 0x400>;
-                       interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART4_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 63 0x400 0x15>,
-                              <&dmamux1 64 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               timer@2 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
 
-               uart5: serial@40011000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40011000 0x400>;
-                       interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART5_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 65 0x400 0x15>,
-                              <&dmamux1 66 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               i2c1: i2c@40012000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40012000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C1_K>;
-                       resets = <&rcc I2C1_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x1>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                       timers4: timer@40002000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40002000 0x400>;
+                               interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM4_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 29 0x400 0x1>,
+                                      <&dmamux1 30 0x400 0x1>,
+                                      <&dmamux1 31 0x400 0x1>,
+                                      <&dmamux1 32 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4";
+                               access-controllers = <&etzpc 18>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               i2c2: i2c@40013000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40013000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C2_K>;
-                       resets = <&rcc I2C2_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x2>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                               timer@3 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <3>;
+                                       status = "disabled";
+                               };
 
-               i2c3: i2c@40014000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40014000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C3_K>;
-                       resets = <&rcc I2C3_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x4>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               i2c5: i2c@40015000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x40015000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C5_K>;
-                       resets = <&rcc I2C5_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x10>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
+                       timers5: timer@40003000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40003000 0x400>;
+                               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM5_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 55 0x400 0x1>,
+                                      <&dmamux1 56 0x400 0x1>,
+                                      <&dmamux1 57 0x400 0x1>,
+                                      <&dmamux1 58 0x400 0x1>,
+                                      <&dmamux1 59 0x400 0x1>,
+                                      <&dmamux1 60 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
+                               access-controllers = <&etzpc 19>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               cec: cec@40016000 {
-                       compatible = "st,stm32-cec";
-                       reg = <0x40016000 0x400>;
-                       interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CEC_K>, <&rcc CEC>;
-                       clock-names = "cec", "hdmi-cec";
-                       status = "disabled";
-               };
+                               timer@4 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <4>;
+                                       status = "disabled";
+                               };
 
-               dac: dac@40017000 {
-                       compatible = "st,stm32h7-dac-core";
-                       reg = <0x40017000 0x400>;
-                       clocks = <&rcc DAC12>;
-                       clock-names = "pclk";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-                       dac1: dac@1 {
-                               compatible = "st,stm32-dac";
-                               #io-channel-cells = <1>;
-                               reg = <1>;
-                               status = "disabled";
+                       timers6: timer@40004000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40004000 0x400>;
+                               interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM6_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 69 0x400 0x1>;
+                               dma-names = "up";
+                               access-controllers = <&etzpc 20>;
+                               status = "disabled";
+
+                               timer@5 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <5>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dac2: dac@2 {
-                               compatible = "st,stm32-dac";
-                               #io-channel-cells = <1>;
-                               reg = <2>;
-                               status = "disabled";
+                       timers7: timer@40005000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40005000 0x400>;
+                               interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM7_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 70 0x400 0x1>;
+                               dma-names = "up";
+                               access-controllers = <&etzpc 21>;
+                               status = "disabled";
+
+                               timer@6 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <6>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               uart7: serial@40018000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40018000 0x400>;
-                       interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART7_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 79 0x400 0x15>,
-                              <&dmamux1 80 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       timers12: timer@40006000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40006000 0x400>;
+                               interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM12_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 22>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               uart8: serial@40019000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x40019000 0x400>;
-                       interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc UART8_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 81 0x400 0x15>,
-                              <&dmamux1 82 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                               timer@11 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <11>;
+                                       status = "disabled";
+                               };
+                       };
 
-               timers1: timer@44000000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44000000 0x400>;
-                       interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "brk", "up", "trg-com", "cc";
-                       clocks = <&rcc TIM1_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 11 0x400 0x1>,
-                              <&dmamux1 12 0x400 0x1>,
-                              <&dmamux1 13 0x400 0x1>,
-                              <&dmamux1 14 0x400 0x1>,
-                              <&dmamux1 15 0x400 0x1>,
-                              <&dmamux1 16 0x400 0x1>,
-                              <&dmamux1 17 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4",
-                                   "up", "trig", "com";
-                       status = "disabled";
+                       timers13: timer@40007000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40007000 0x400>;
+                               interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM13_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 23>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               timer@12 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <12>;
+                                       status = "disabled";
+                               };
                        };
 
-                       timer@0 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <0>;
-                               status = "disabled";
-                       };
+                       timers14: timer@40008000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x40008000 0x400>;
+                               interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM14_K>;
+                               clock-names = "int";
+                               access-controllers = <&etzpc 24>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
-                               status = "disabled";
+                               timer@13 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <13>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               timers8: timer@44001000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44001000 0x400>;
-                       interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "brk", "up", "trg-com", "cc";
-                       clocks = <&rcc TIM8_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 47 0x400 0x1>,
-                              <&dmamux1 48 0x400 0x1>,
-                              <&dmamux1 49 0x400 0x1>,
-                              <&dmamux1 50 0x400 0x1>,
-                              <&dmamux1 51 0x400 0x1>,
-                              <&dmamux1 52 0x400 0x1>,
-                              <&dmamux1 53 0x400 0x1>;
-                       dma-names = "ch1", "ch2", "ch3", "ch4",
-                                   "up", "trig", "com";
-                       status = "disabled";
+                       lptimer1: timer@40009000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x40009000 0x400>;
+                               interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM1_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 25>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               trigger@0 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
+
+                               counter {
+                                       compatible = "st,stm32-lptimer-counter";
+                                       status = "disabled";
+                               };
                        };
 
-                       timer@7 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <7>;
+                       i2s2: audio-controller@4000b000 {
+                               compatible = "st,stm32h7-i2s";
+                               #sound-dai-cells = <0>;
+                               reg = <0x4000b000 0x400>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 39 0x400 0x01>,
+                                      <&dmamux1 40 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 27>;
                                status = "disabled";
                        };
 
-                       counter {
-                               compatible = "st,stm32-timer-counter";
+                       spi2: spi@4000b000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4000b000 0x400>;
+                               interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI2_K>;
+                               resets = <&rcc SPI2_R>;
+                               dmas = <&dmamux1 39 0x400 0x05>,
+                                      <&dmamux1 40 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 27>;
                                status = "disabled";
                        };
-               };
-
-               usart6: serial@44003000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x44003000 0x400>;
-                       interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART6_K>;
-                       wakeup-source;
-                       dmas = <&dmamux1 71 0x400 0x15>,
-                              <&dmamux1 72 0x400 0x11>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi1: spi@44004000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x44004000 0x400>;
-                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI1_K>;
-                       resets = <&rcc SPI1_R>;
-                       dmas = <&dmamux1 37 0x400 0x05>,
-                              <&dmamux1 38 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2s1: audio-controller@44004000 {
-                       compatible = "st,stm32h7-i2s";
-                       #sound-dai-cells = <0>;
-                       reg = <0x44004000 0x400>;
-                       interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&dmamux1 37 0x400 0x01>,
-                              <&dmamux1 38 0x400 0x01>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               spi4: spi@44005000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x44005000 0x400>;
-                       interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI4_K>;
-                       resets = <&rcc SPI4_R>;
-                       dmas = <&dmamux1 83 0x400 0x05>,
-                              <&dmamux1 84 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               timers15: timer@44006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44006000 0x400>;
-                       interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM15_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 105 0x400 0x1>,
-                              <&dmamux1 106 0x400 0x1>,
-                              <&dmamux1 107 0x400 0x1>,
-                              <&dmamux1 108 0x400 0x1>;
-                       dma-names = "ch1", "up", "trig", "com";
-                       status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
+                       i2s3: audio-controller@4000c000 {
+                               compatible = "st,stm32h7-i2s";
+                               #sound-dai-cells = <0>;
+                               reg = <0x4000c000 0x400>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 61 0x400 0x01>,
+                                      <&dmamux1 62 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 28>;
                                status = "disabled";
                        };
 
-                       timer@14 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <14>;
+                       spi3: spi@4000c000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x4000c000 0x400>;
+                               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI3_K>;
+                               resets = <&rcc SPI3_R>;
+                               dmas = <&dmamux1 61 0x400 0x05>,
+                                      <&dmamux1 62 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 28>;
                                status = "disabled";
                        };
-               };
-
-               timers16: timer@44007000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44007000 0x400>;
-                       interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM16_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 109 0x400 0x1>,
-                              <&dmamux1 110 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
+                       spdifrx: audio-controller@4000d000 {
+                               compatible = "st,stm32h7-spdifrx";
+                               #sound-dai-cells = <0>;
+                               reg = <0x4000d000 0x400>;
+                               clocks = <&rcc SPDIF_K>;
+                               clock-names = "kclk";
+                               interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 93 0x400 0x01>,
+                                      <&dmamux1 94 0x400 0x01>;
+                               dma-names = "rx", "rx-ctrl";
+                               access-controllers = <&etzpc 29>;
+                               status = "disabled";
+                       };
+
+                       usart2: serial@4000e000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4000e000 0x400>;
+                               interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART2_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 43 0x400 0x15>,
+                                      <&dmamux1 44 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 30>;
+                               status = "disabled";
+                       };
+
+                       usart3: serial@4000f000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x4000f000 0x400>;
+                               interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART3_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 45 0x400 0x15>,
+                                      <&dmamux1 46 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 31>;
+                               status = "disabled";
+                       };
+
+                       uart4: serial@40010000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40010000 0x400>;
+                               interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART4_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 63 0x400 0x15>,
+                                      <&dmamux1 64 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 32>;
+                               status = "disabled";
+                       };
+
+                       uart5: serial@40011000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40011000 0x400>;
+                               interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART5_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 65 0x400 0x15>,
+                                      <&dmamux1 66 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 33>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@40012000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40012000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C1_K>;
+                               resets = <&rcc I2C1_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x1>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 34>;
                                status = "disabled";
                        };
-                       timer@15 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <15>;
+
+                       i2c2: i2c@40013000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40013000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C2_K>;
+                               resets = <&rcc I2C2_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x2>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 35>;
                                status = "disabled";
                        };
-               };
 
-               timers17: timer@44008000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-timers";
-                       reg = <0x44008000 0x400>;
-                       interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "global";
-                       clocks = <&rcc TIM17_K>;
-                       clock-names = "int";
-                       dmas = <&dmamux1 111 0x400 0x1>,
-                              <&dmamux1 112 0x400 0x1>;
-                       dma-names = "ch1", "up";
-                       status = "disabled";
+                       i2c3: i2c@40014000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40014000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C3_K>;
+                               resets = <&rcc I2C3_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x4>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 36>;
+                               status = "disabled";
+                       };
 
-                       pwm {
-                               compatible = "st,stm32-pwm";
-                               #pwm-cells = <3>;
+                       i2c5: i2c@40015000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x40015000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C5_K>;
+                               resets = <&rcc I2C5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x10>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 37>;
                                status = "disabled";
                        };
 
-                       timer@16 {
-                               compatible = "st,stm32h7-timer-trigger";
-                               reg = <16>;
+                       cec: cec@40016000 {
+                               compatible = "st,stm32-cec";
+                               reg = <0x40016000 0x400>;
+                               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CEC_K>, <&rcc CEC>;
+                               clock-names = "cec", "hdmi-cec";
+                               access-controllers = <&etzpc 38>;
                                status = "disabled";
                        };
-               };
 
-               spi5: spi@44009000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x44009000 0x400>;
-                       interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI5_K>;
-                       resets = <&rcc SPI5_R>;
-                       dmas = <&dmamux1 85 0x400 0x05>,
-                              <&dmamux1 86 0x400 0x05>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
+                       dac: dac@40017000 {
+                               compatible = "st,stm32h7-dac-core";
+                               reg = <0x40017000 0x400>;
+                               clocks = <&rcc DAC12>;
+                               clock-names = "pclk";
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 39>;
+                               status = "disabled";
 
-               sai1: sai@4400a000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x4400a000 0x400>;
-                       reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
-                       interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI1_R>;
-                       status = "disabled";
+                               dac1: dac@1 {
+                                       compatible = "st,stm32-dac";
+                                       #io-channel-cells = <1>;
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
 
-                       sai1a: audio-controller@4400a004 {
-                               #sound-dai-cells = <0>;
+                               dac2: dac@2 {
+                                       compatible = "st,stm32-dac";
+                                       #io-channel-cells = <1>;
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
+                       };
 
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x4 0x20>;
-                               clocks = <&rcc SAI1_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 87 0x400 0x01>;
+                       uart7: serial@40018000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40018000 0x400>;
+                               interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART7_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 79 0x400 0x15>,
+                                      <&dmamux1 80 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 40>;
                                status = "disabled";
                        };
 
-                       sai1b: audio-controller@4400a024 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI1_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 88 0x400 0x01>;
+                       uart8: serial@40019000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x40019000 0x400>;
+                               interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc UART8_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 81 0x400 0x15>,
+                                      <&dmamux1 82 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 41>;
                                status = "disabled";
                        };
-               };
 
-               sai2: sai@4400b000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x4400b000 0x400>;
-                       reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
-                       interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI2_R>;
-                       status = "disabled";
+                       timers1: timer@44000000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44000000 0x400>;
+                               interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "brk", "up", "trg-com", "cc";
+                               clocks = <&rcc TIM1_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 11 0x400 0x1>,
+                                      <&dmamux1 12 0x400 0x1>,
+                                      <&dmamux1 13 0x400 0x1>,
+                                      <&dmamux1 14 0x400 0x1>,
+                                      <&dmamux1 15 0x400 0x1>,
+                                      <&dmamux1 16 0x400 0x1>,
+                                      <&dmamux1 17 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4",
+                                           "up", "trig", "com";
+                               access-controllers = <&etzpc 48>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       sai2a: audio-controller@4400b004 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x4 0x20>;
-                               clocks = <&rcc SAI2_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 89 0x400 0x01>;
-                               status = "disabled";
-                       };
+                               timer@0 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <0>;
+                                       status = "disabled";
+                               };
 
-                       sai2b: audio-controller@4400b024 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI2_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 90 0x400 0x01>;
-                               status = "disabled";
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               sai3: sai@4400c000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x4400c000 0x400>;
-                       reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
-                       interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI3_R>;
-                       status = "disabled";
+                       timers8: timer@44001000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44001000 0x400>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "brk", "up", "trg-com", "cc";
+                               clocks = <&rcc TIM8_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 47 0x400 0x1>,
+                                      <&dmamux1 48 0x400 0x1>,
+                                      <&dmamux1 49 0x400 0x1>,
+                                      <&dmamux1 50 0x400 0x1>,
+                                      <&dmamux1 51 0x400 0x1>,
+                                      <&dmamux1 52 0x400 0x1>,
+                                      <&dmamux1 53 0x400 0x1>;
+                               dma-names = "ch1", "ch2", "ch3", "ch4",
+                                           "up", "trig", "com";
+                               access-controllers = <&etzpc 49>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       sai3a: audio-controller@4400c004 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x04 0x20>;
-                               clocks = <&rcc SAI3_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 113 0x400 0x01>;
+                               timer@7 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <7>;
+                                       status = "disabled";
+                               };
+
+                               counter {
+                                       compatible = "st,stm32-timer-counter";
+                                       status = "disabled";
+                               };
+                       };
+
+                       usart6: serial@44003000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x44003000 0x400>;
+                               interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART6_K>;
+                               wakeup-source;
+                               dmas = <&dmamux1 71 0x400 0x15>,
+                               <&dmamux1 72 0x400 0x11>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 51>;
                                status = "disabled";
                        };
 
-                       sai3b: audio-controller@4400c024 {
+                       i2s1: audio-controller@44004000 {
+                               compatible = "st,stm32h7-i2s";
                                #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI3_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 114 0x400 0x01>;
+                               reg = <0x44004000 0x400>;
+                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&dmamux1 37 0x400 0x01>,
+                               <&dmamux1 38 0x400 0x01>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 52>;
                                status = "disabled";
                        };
-               };
-
-               dfsdm: dfsdm@4400d000 {
-                       compatible = "st,stm32mp1-dfsdm";
-                       reg = <0x4400d000 0x800>;
-                       clocks = <&rcc DFSDM_K>;
-                       clock-names = "dfsdm";
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
 
-                       dfsdm0: filter@0 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <0>;
-                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 101 0x400 0x01>;
-                               dma-names = "rx";
+                       spi1: spi@44004000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x44004000 0x400>;
+                               interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI1_K>;
+                               resets = <&rcc SPI1_R>;
+                               dmas = <&dmamux1 37 0x400 0x05>,
+                               <&dmamux1 38 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 52>;
                                status = "disabled";
                        };
 
-                       dfsdm1: filter@1 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <1>;
-                               interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 102 0x400 0x01>;
-                               dma-names = "rx";
+                       spi4: spi@44005000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x44005000 0x400>;
+                               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI4_K>;
+                               resets = <&rcc SPI4_R>;
+                               dmas = <&dmamux1 83 0x400 0x05>,
+                               <&dmamux1 84 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 53>;
                                status = "disabled";
                        };
 
-                       dfsdm2: filter@2 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <2>;
-                               interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 103 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                       timers15: timer@44006000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44006000 0x400>;
+                               interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM15_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 105 0x400 0x1>,
+                                      <&dmamux1 106 0x400 0x1>,
+                                      <&dmamux1 107 0x400 0x1>,
+                                      <&dmamux1 108 0x400 0x1>;
+                               dma-names = "ch1", "up", "trig", "com";
+                               access-controllers = <&etzpc 54>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@14 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <14>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dfsdm3: filter@3 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <3>;
-                               interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 104 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                       timers16: timer@44007000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44007000 0x400>;
+                               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM16_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 109 0x400 0x1>,
+                               <&dmamux1 110 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 55>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+                               timer@15 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <15>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dfsdm4: filter@4 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <4>;
-                               interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 91 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                       timers17: timer@44008000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-timers";
+                               reg = <0x44008000 0x400>;
+                               interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "global";
+                               clocks = <&rcc TIM17_K>;
+                               clock-names = "int";
+                               dmas = <&dmamux1 111 0x400 0x1>,
+                               <&dmamux1 112 0x400 0x1>;
+                               dma-names = "ch1", "up";
+                               access-controllers = <&etzpc 56>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
+
+                               timer@16 {
+                                       compatible = "st,stm32h7-timer-trigger";
+                                       reg = <16>;
+                                       status = "disabled";
+                               };
                        };
 
-                       dfsdm5: filter@5 {
-                               compatible = "st,stm32-dfsdm-adc";
-                               #io-channel-cells = <1>;
-                               reg = <5>;
-                               interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&dmamux1 92 0x400 0x01>;
-                               dma-names = "rx";
+                       spi5: spi@44009000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x44009000 0x400>;
+                               interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI5_K>;
+                               resets = <&rcc SPI5_R>;
+                               dmas = <&dmamux1 85 0x400 0x05>,
+                               <&dmamux1 86 0x400 0x05>;
+                               dma-names = "rx", "tx";
+                               access-controllers = <&etzpc 57>;
                                status = "disabled";
                        };
-               };
 
-               dma1: dma-controller@48000000 {
-                       compatible = "st,stm32-dma";
-                       reg = <0x48000000 0x400>;
-                       interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc DMA1>;
-                       resets = <&rcc DMA1_R>;
-                       #dma-cells = <4>;
-                       st,mem2mem;
-                       dma-requests = <8>;
-               };
+                       sai1: sai@4400a000 {
+                               compatible = "st,stm32h7-sai";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x4400a000 0x400>;
+                               reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
+                               interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI1_R>;
+                               access-controllers = <&etzpc 58>;
+                               status = "disabled";
+
+                               sai1a: audio-controller@4400a004 {
+                                       #sound-dai-cells = <0>;
+
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x4 0x20>;
+                                       clocks = <&rcc SAI1_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 87 0x400 0x01>;
+                                       status = "disabled";
+                               };
 
-               dma2: dma-controller@48001000 {
-                       compatible = "st,stm32-dma";
-                       reg = <0x48001000 0x400>;
-                       interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc DMA2>;
-                       resets = <&rcc DMA2_R>;
-                       #dma-cells = <4>;
-                       st,mem2mem;
-                       dma-requests = <8>;
-               };
+                               sai1b: audio-controller@4400a024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI1_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 88 0x400 0x01>;
+                                       status = "disabled";
+                               };
+                       };
 
-               dmamux1: dma-router@48002000 {
-                       compatible = "st,stm32h7-dmamux";
-                       reg = <0x48002000 0x40>;
-                       #dma-cells = <3>;
-                       dma-requests = <128>;
-                       dma-masters = <&dma1 &dma2>;
-                       dma-channels = <16>;
-                       clocks = <&rcc DMAMUX>;
-                       resets = <&rcc DMAMUX_R>;
-               };
+                       sai2: sai@4400b000 {
+                               compatible = "st,stm32h7-sai";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x4400b000 0x400>;
+                               reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
+                               interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI2_R>;
+                               access-controllers = <&etzpc 59>;
+                               status = "disabled";
+
+                               sai2a: audio-controller@4400b004 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x4 0x20>;
+                                       clocks = <&rcc SAI2_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 89 0x400 0x01>;
+                                       status = "disabled";
+                               };
 
-               adc: adc@48003000 {
-                       compatible = "st,stm32mp1-adc-core";
-                       reg = <0x48003000 0x400>;
-                       interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc ADC12>, <&rcc ADC12_K>;
-                       clock-names = "bus", "adc";
-                       interrupt-controller;
-                       st,syscfg = <&syscfg>;
-                       #interrupt-cells = <1>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
+                               sai2b: audio-controller@4400b024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI2_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 90 0x400 0x01>;
+                                       status = "disabled";
+                               };
+                       };
 
-                       adc1: adc@0 {
-                               compatible = "st,stm32mp1-adc";
-                               #io-channel-cells = <1>;
+                       sai3: sai@4400c000 {
+                               compatible = "st,stm32h7-sai";
                                #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0x0>;
-                               interrupt-parent = <&adc>;
-                               interrupts = <0>;
-                               dmas = <&dmamux1 9 0x400 0x01>;
-                               dma-names = "rx";
-                               status = "disabled";
+                               #size-cells = <1>;
+                               ranges = <0 0x4400c000 0x400>;
+                               reg = <0x4400c000 0x4>, <0x4400c3f0 0x10>;
+                               interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI3_R>;
+                               access-controllers = <&etzpc 60>;
+                               status = "disabled";
+
+                               sai3a: audio-controller@4400c004 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x04 0x20>;
+                                       clocks = <&rcc SAI3_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 113 0x400 0x01>;
+                                       status = "disabled";
+                               };
+
+                               sai3b: audio-controller@4400c024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI3_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 114 0x400 0x01>;
+                                       status = "disabled";
+                               };
                        };
 
-                       adc2: adc@100 {
-                               compatible = "st,stm32mp1-adc";
-                               #io-channel-cells = <1>;
+                       dfsdm: dfsdm@4400d000 {
+                               compatible = "st,stm32mp1-dfsdm";
+                               reg = <0x4400d000 0x800>;
+                               clocks = <&rcc DFSDM_K>;
+                               clock-names = "dfsdm";
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               reg = <0x100>;
-                               interrupt-parent = <&adc>;
-                               interrupts = <1>;
-                               dmas = <&dmamux1 10 0x400 0x01>;
-                               dma-names = "rx";
-                               nvmem-cells = <&vrefint>;
-                               nvmem-cell-names = "vrefint";
-                               status = "disabled";
-                               channel@13 {
-                                       reg = <13>;
-                                       label = "vrefint";
+                               access-controllers = <&etzpc 61>;
+                               status = "disabled";
+
+                               dfsdm0: filter@0 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <0>;
+                                       interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 101 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
                                };
-                               channel@14 {
-                                       reg = <14>;
-                                       label = "vddcore";
+
+                               dfsdm1: filter@1 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <1>;
+                                       interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 102 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
                                };
-                       };
-               };
 
-               sdmmc3: mmc@48004000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x00253180>;
-                       reg = <0x48004000 0x400>;
-                       interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC3_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC3_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <120000000>;
-                       status = "disabled";
-               };
-
-               usbotg_hs: usb-otg@49000000 {
-                       compatible = "st,stm32mp15-hsotg", "snps,dwc2";
-                       reg = <0x49000000 0x10000>;
-                       clocks = <&rcc USBO_K>, <&usbphyc>;
-                       clock-names = "otg", "utmi";
-                       resets = <&rcc USBO_R>;
-                       reset-names = "dwc2";
-                       interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
-                       g-rx-fifo-size = <512>;
-                       g-np-tx-fifo-size = <32>;
-                       g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
-                       dr_mode = "otg";
-                       otg-rev = <0x200>;
-                       usb33d-supply = <&usb33>;
-                       status = "disabled";
-               };
-
-               ipcc: mailbox@4c001000 {
-                       compatible = "st,stm32mp1-ipcc";
-                       #mbox-cells = <1>;
-                       reg = <0x4c001000 0x400>;
-                       st,proc-id = <0>;
-                       interrupts-extended =
-                               <&exti 61 1>,
-                               <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "rx", "tx";
-                       clocks = <&rcc IPCC>;
-                       wakeup-source;
-                       status = "disabled";
-               };
-
-               dcmi: dcmi@4c006000 {
-                       compatible = "st,stm32-dcmi";
-                       reg = <0x4c006000 0x400>;
-                       interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc CAMITF_R>;
-                       clocks = <&rcc DCMI>;
-                       clock-names = "mclk";
-                       dmas = <&dmamux1 75 0x400 0x01>;
-                       dma-names = "tx";
-                       status = "disabled";
-               };
+                               dfsdm2: filter@2 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <2>;
+                                       interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 103 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-               rcc: rcc@50000000 {
-                       compatible = "st,stm32mp1-rcc", "syscon";
-                       reg = <0x50000000 0x1000>;
-                       #clock-cells = <1>;
-                       #reset-cells = <1>;
-               };
+                               dfsdm3: filter@3 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <3>;
+                                       interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 104 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-               pwr_regulators: pwr@50001000 {
-                       compatible = "st,stm32mp1,pwr-reg";
-                       reg = <0x50001000 0x10>;
+                               dfsdm4: filter@4 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <4>;
+                                       interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 91 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-                       reg11: reg11 {
-                               regulator-name = "reg11";
-                               regulator-min-microvolt = <1100000>;
-                               regulator-max-microvolt = <1100000>;
+                               dfsdm5: filter@5 {
+                                       compatible = "st,stm32-dfsdm-adc";
+                                       #io-channel-cells = <1>;
+                                       reg = <5>;
+                                       interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&dmamux1 92 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
                        };
 
-                       reg18: reg18 {
-                               regulator-name = "reg18";
-                               regulator-min-microvolt = <1800000>;
-                               regulator-max-microvolt = <1800000>;
-                       };
+                       dma1: dma-controller@48000000 {
+                               compatible = "st,stm32-dma";
+                               reg = <0x48000000 0x400>;
+                               interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc DMA1>;
+                               resets = <&rcc DMA1_R>;
+                               #dma-cells = <4>;
+                               st,mem2mem;
+                               dma-requests = <8>;
+                               access-controllers = <&etzpc 88>;
+                       };
+
+                       dma2: dma-controller@48001000 {
+                               compatible = "st,stm32-dma";
+                               reg = <0x48001000 0x400>;
+                               interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc DMA2>;
+                               resets = <&rcc DMA2_R>;
+                               #dma-cells = <4>;
+                               st,mem2mem;
+                               dma-requests = <8>;
+                               access-controllers = <&etzpc 89>;
+                       };
+
+                       dmamux1: dma-router@48002000 {
+                               compatible = "st,stm32h7-dmamux";
+                               reg = <0x48002000 0x40>;
+                               #dma-cells = <3>;
+                               dma-requests = <128>;
+                               dma-masters = <&dma1 &dma2>;
+                               dma-channels = <16>;
+                               clocks = <&rcc DMAMUX>;
+                               resets = <&rcc DMAMUX_R>;
+                               access-controllers = <&etzpc 90>;
+                       };
+
+                       adc: adc@48003000 {
+                               compatible = "st,stm32mp1-adc-core";
+                               reg = <0x48003000 0x400>;
+                               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc ADC12>, <&rcc ADC12_K>;
+                               clock-names = "bus", "adc";
+                               interrupt-controller;
+                               st,syscfg = <&syscfg>;
+                               #interrupt-cells = <1>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 72>;
+                               status = "disabled";
+
+                               adc1: adc@0 {
+                                       compatible = "st,stm32mp1-adc";
+                                       #io-channel-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x0>;
+                                       interrupt-parent = <&adc>;
+                                       interrupts = <0>;
+                                       dmas = <&dmamux1 9 0x400 0x01>;
+                                       dma-names = "rx";
+                                       status = "disabled";
+                               };
 
-                       usb33: usb33 {
-                               regulator-name = "usb33";
-                               regulator-min-microvolt = <3300000>;
-                               regulator-max-microvolt = <3300000>;
+                               adc2: adc@100 {
+                                       compatible = "st,stm32mp1-adc";
+                                       #io-channel-cells = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       reg = <0x100>;
+                                       interrupt-parent = <&adc>;
+                                       interrupts = <1>;
+                                       dmas = <&dmamux1 10 0x400 0x01>;
+                                       dma-names = "rx";
+                                       nvmem-cells = <&vrefint>;
+                                       nvmem-cell-names = "vrefint";
+                                       status = "disabled";
+                                       channel@13 {
+                                               reg = <13>;
+                                               label = "vrefint";
+                                       };
+                                       channel@14 {
+                                               reg = <14>;
+                                               label = "vddcore";
+                                       };
+                               };
                        };
-               };
 
-               pwr_mcu: pwr_mcu@50001014 {
-                       compatible = "st,stm32mp151-pwr-mcu", "syscon";
-                       reg = <0x50001014 0x4>;
-               };
+                       sdmmc3: mmc@48004000 {
+                               compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
+                               arm,primecell-periphid = <0x00253180>;
+                               reg = <0x48004000 0x400>;
+                               interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SDMMC3_K>;
+                               clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC3_R>;
+                               cap-sd-highspeed;
+                               cap-mmc-highspeed;
+                               max-frequency = <120000000>;
+                               access-controllers = <&etzpc 86>;
+                               status = "disabled";
+                       };
+
+                       usbotg_hs: usb-otg@49000000 {
+                               compatible = "st,stm32mp15-hsotg", "snps,dwc2";
+                               reg = <0x49000000 0x10000>;
+                               clocks = <&rcc USBO_K>, <&usbphyc>;
+                               clock-names = "otg", "utmi";
+                               resets = <&rcc USBO_R>;
+                               reset-names = "dwc2";
+                               interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
+                               g-rx-fifo-size = <512>;
+                               g-np-tx-fifo-size = <32>;
+                               g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
+                               dr_mode = "otg";
+                               otg-rev = <0x200>;
+                               usb33d-supply = <&usb33>;
+                               access-controllers = <&etzpc 85>;
+                               status = "disabled";
+                       };
+
+                       dcmi: dcmi@4c006000 {
+                               compatible = "st,stm32-dcmi";
+                               reg = <0x4c006000 0x400>;
+                               interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc CAMITF_R>;
+                               clocks = <&rcc DCMI>;
+                               clock-names = "mclk";
+                               dmas = <&dmamux1 75 0x400 0x01>;
+                               dma-names = "tx";
+                               access-controllers = <&etzpc 70>;
+                               status = "disabled";
+                       };
+
+                       lptimer2: timer@50021000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50021000 0x400>;
+                               interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM2_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 64>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-               exti: interrupt-controller@5000d000 {
-                       compatible = "st,stm32mp1-exti", "syscon";
-                       interrupt-controller;
-                       #interrupt-cells = <2>;
-                       reg = <0x5000d000 0x400>;
-               };
+                               trigger@1 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <1>;
+                                       status = "disabled";
+                               };
 
-               syscfg: syscon@50020000 {
-                       compatible = "st,stm32mp157-syscfg", "syscon";
-                       reg = <0x50020000 0x400>;
-                       clocks = <&rcc SYSCFG>;
-               };
+                               counter {
+                                       compatible = "st,stm32-lptimer-counter";
+                                       status = "disabled";
+                               };
+                       };
 
-               lptimer2: timer@50021000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50021000 0x400>;
-                       interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM2_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
+                       lptimer3: timer@50022000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50022000 0x400>;
+                               interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM3_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 65>;
+                               status = "disabled";
+
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               trigger@2 {
+                                       compatible = "st,stm32-lptimer-trigger";
+                                       reg = <2>;
+                                       status = "disabled";
+                               };
                        };
 
-                       trigger@1 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <1>;
+                       lptimer4: timer@50023000 {
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50023000 0x400>;
+                               interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM4_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 66>;
                                status = "disabled";
-                       };
 
-                       counter {
-                               compatible = "st,stm32-lptimer-counter";
-                               status = "disabled";
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               lptimer3: timer@50022000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50022000 0x400>;
-                       interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM3_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
-
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
+                       lptimer5: timer@50024000 {
+                               compatible = "st,stm32-lptimer";
+                               reg = <0x50024000 0x400>;
+                               interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc LPTIM5_K>;
+                               clock-names = "mux";
+                               wakeup-source;
+                               access-controllers = <&etzpc 67>;
                                status = "disabled";
-                       };
 
-                       trigger@2 {
-                               compatible = "st,stm32-lptimer-trigger";
-                               reg = <2>;
-                               status = "disabled";
+                               pwm {
+                                       compatible = "st,stm32-pwm-lp";
+                                       #pwm-cells = <3>;
+                                       status = "disabled";
+                               };
                        };
-               };
-
-               lptimer4: timer@50023000 {
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50023000 0x400>;
-                       interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM4_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
+                       vrefbuf: vrefbuf@50025000 {
+                               compatible = "st,stm32-vrefbuf";
+                               reg = <0x50025000 0x8>;
+                               regulator-min-microvolt = <1500000>;
+                               regulator-max-microvolt = <2500000>;
+                               clocks = <&rcc VREF>;
+                               access-controllers = <&etzpc 69>;
                                status = "disabled";
                        };
-               };
 
-               lptimer5: timer@50024000 {
-                       compatible = "st,stm32-lptimer";
-                       reg = <0x50024000 0x400>;
-                       interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LPTIM5_K>;
-                       clock-names = "mux";
-                       wakeup-source;
-                       status = "disabled";
+                       sai4: sai@50027000 {
+                               compatible = "st,stm32h7-sai";
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0 0x50027000 0x400>;
+                               reg = <0x50027000 0x4>, <0x500273f0 0x10>;
+                               interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
+                               resets = <&rcc SAI4_R>;
+                               access-controllers = <&etzpc 68>;
+                               status = "disabled";
+
+                               sai4a: audio-controller@50027004 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-a";
+                                       reg = <0x04 0x20>;
+                                       clocks = <&rcc SAI4_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 99 0x400 0x01>;
+                                       status = "disabled";
+                               };
 
-                       pwm {
-                               compatible = "st,stm32-pwm-lp";
-                               #pwm-cells = <3>;
-                               status = "disabled";
+                               sai4b: audio-controller@50027024 {
+                                       #sound-dai-cells = <0>;
+                                       compatible = "st,stm32-sai-sub-b";
+                                       reg = <0x24 0x20>;
+                                       clocks = <&rcc SAI4_K>;
+                                       clock-names = "sai_ck";
+                                       dmas = <&dmamux1 100 0x400 0x01>;
+                                       status = "disabled";
+                               };
                        };
-               };
 
-               vrefbuf: vrefbuf@50025000 {
-                       compatible = "st,stm32-vrefbuf";
-                       reg = <0x50025000 0x8>;
-                       regulator-min-microvolt = <1500000>;
-                       regulator-max-microvolt = <2500000>;
-                       clocks = <&rcc VREF>;
-                       status = "disabled";
-               };
-
-               sai4: sai@50027000 {
-                       compatible = "st,stm32h7-sai";
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       ranges = <0 0x50027000 0x400>;
-                       reg = <0x50027000 0x4>, <0x500273f0 0x10>;
-                       interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
-                       resets = <&rcc SAI4_R>;
-                       status = "disabled";
+                       hash1: hash@54002000 {
+                               compatible = "st,stm32f756-hash";
+                               reg = <0x54002000 0x400>;
+                               interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc HASH1>;
+                               resets = <&rcc HASH1_R>;
+                               dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
+                               dma-names = "in";
+                               dma-maxburst = <2>;
+                               access-controllers = <&etzpc 8>;
+                               status = "disabled";
+                       };
+
+                       rng1: rng@54003000 {
+                               compatible = "st,stm32-rng";
+                               reg = <0x54003000 0x400>;
+                               clocks = <&rcc RNG1_K>;
+                               resets = <&rcc RNG1_R>;
+                               access-controllers = <&etzpc 7>;
+                               status = "disabled";
+                       };
+
+                       fmc: memory-controller@58002000 {
+                               #address-cells = <2>;
+                               #size-cells = <1>;
+                               compatible = "st,stm32mp1-fmc2-ebi";
+                               reg = <0x58002000 0x1000>;
+                               clocks = <&rcc FMC_K>;
+                               resets = <&rcc FMC_R>;
+                               access-controllers = <&etzpc 91>;
+                               status = "disabled";
+
+                               ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
+                                        <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
+                                        <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
+                                        <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
+                                        <4 0 0x80000000 0x10000000>; /* NAND */
+
+                               nand-controller@4,0 {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                                       compatible = "st,stm32mp1-fmc2-nfc";
+                                       reg = <4 0x00000000 0x1000>,
+                                             <4 0x08010000 0x1000>,
+                                             <4 0x08020000 0x1000>,
+                                             <4 0x01000000 0x1000>,
+                                             <4 0x09010000 0x1000>,
+                                             <4 0x09020000 0x1000>;
+                                       interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
+                                       dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
+                                              <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
+                                              <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
+                                       dma-names = "tx", "rx", "ecc";
+                                       status = "disabled";
+                               };
+                       };
 
-                       sai4a: audio-controller@50027004 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-a";
-                               reg = <0x04 0x20>;
-                               clocks = <&rcc SAI4_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 99 0x400 0x01>;
-                               status = "disabled";
+                       qspi: spi@58003000 {
+                               compatible = "st,stm32f469-qspi";
+                               reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
+                               reg-names = "qspi", "qspi_mm";
+                               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
+                               dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
+                                      <&mdma1 22 0x2 0x10100008 0x0 0x0>;
+                               dma-names = "tx", "rx";
+                               clocks = <&rcc QSPI_K>;
+                               resets = <&rcc QSPI_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&etzpc 92>;
+                               status = "disabled";
+                       };
+
+                       ethernet0: ethernet@5800a000 {
+                               compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
+                               reg = <0x5800a000 0x2000>;
+                               reg-names = "stmmaceth";
+                               interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-names = "macirq";
+                               clock-names = "stmmaceth",
+                                             "mac-clk-tx",
+                                             "mac-clk-rx",
+                                             "eth-ck",
+                                             "ptp_ref",
+                                             "ethstp";
+                               clocks = <&rcc ETHMAC>,
+                                        <&rcc ETHTX>,
+                                        <&rcc ETHRX>,
+                                        <&rcc ETHCK_K>,
+                                        <&rcc ETHPTP_K>,
+                                        <&rcc ETHSTP>;
+                               st,syscon = <&syscfg 0x4>;
+                               snps,mixed-burst;
+                               snps,pbl = <2>;
+                               snps,en-tx-lpi-clockgating;
+                               snps,axi-config = <&stmmac_axi_config_0>;
+                               snps,tso;
+                               access-controllers = <&etzpc 94>;
+                               status = "disabled";
+
+                               stmmac_axi_config_0: stmmac-axi-config {
+                                       snps,wr_osr_lmt = <0x7>;
+                                       snps,rd_osr_lmt = <0x7>;
+                                       snps,blen = <0 0 0 0 16 8 4>;
+                               };
                        };
 
-                       sai4b: audio-controller@50027024 {
-                               #sound-dai-cells = <0>;
-                               compatible = "st,stm32-sai-sub-b";
-                               reg = <0x24 0x20>;
-                               clocks = <&rcc SAI4_K>;
-                               clock-names = "sai_ck";
-                               dmas = <&dmamux1 100 0x400 0x01>;
+                       usart1: serial@5c000000 {
+                               compatible = "st,stm32h7-uart";
+                               reg = <0x5c000000 0x400>;
+                               interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc USART1_K>;
+                               wakeup-source;
+                               access-controllers = <&etzpc 3>;
                                status = "disabled";
                        };
-               };
-
-               dts: thermal@50028000 {
-                       compatible = "st,stm32-thermal";
-                       reg = <0x50028000 0x100>;
-                       interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc TMPSENS>;
-                       clock-names = "pclk";
-                       #thermal-sensor-cells = <0>;
-                       status = "disabled";
-               };
 
-               hash1: hash@54002000 {
-                       compatible = "st,stm32f756-hash";
-                       reg = <0x54002000 0x400>;
-                       interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc HASH1>;
-                       resets = <&rcc HASH1_R>;
-                       dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0>;
-                       dma-names = "in";
-                       dma-maxburst = <2>;
-                       status = "disabled";
-               };
-
-               rng1: rng@54003000 {
-                       compatible = "st,stm32-rng";
-                       reg = <0x54003000 0x400>;
-                       clocks = <&rcc RNG1_K>;
-                       resets = <&rcc RNG1_R>;
-                       status = "disabled";
-               };
-
-               mdma1: dma-controller@58000000 {
-                       compatible = "st,stm32h7-mdma";
-                       reg = <0x58000000 0x1000>;
-                       interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc MDMA>;
-                       resets = <&rcc MDMA_R>;
-                       #dma-cells = <5>;
-                       dma-channels = <32>;
-                       dma-requests = <48>;
-               };
-
-               fmc: memory-controller@58002000 {
-                       #address-cells = <2>;
-                       #size-cells = <1>;
-                       compatible = "st,stm32mp1-fmc2-ebi";
-                       reg = <0x58002000 0x1000>;
-                       clocks = <&rcc FMC_K>;
-                       resets = <&rcc FMC_R>;
-                       status = "disabled";
-
-                       ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
-                                <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
-                                <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
-                                <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
-                                <4 0 0x80000000 0x10000000>; /* NAND */
-
-                       nand-controller@4,0 {
+                       spi6: spi@5c001000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32h7-spi";
+                               reg = <0x5c001000 0x400>;
+                               interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc SPI6_K>;
+                               resets = <&rcc SPI6_R>;
+                               dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
+                                      <&mdma1 35 0x0 0x40002 0x0 0x0>;
+                               access-controllers = <&etzpc 4>;
+                               dma-names = "rx", "tx";
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@5c002000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x5c002000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C4_K>;
+                               resets = <&rcc I2C4_R>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               compatible = "st,stm32mp1-fmc2-nfc";
-                               reg = <4 0x00000000 0x1000>,
-                                     <4 0x08010000 0x1000>,
-                                     <4 0x08020000 0x1000>,
-                                     <4 0x01000000 0x1000>,
-                                     <4 0x09010000 0x1000>,
-                                     <4 0x09020000 0x1000>;
-                               interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
-                               dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
-                                      <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
-                                      <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
-                               dma-names = "tx", "rx", "ecc";
+                               st,syscfg-fmp = <&syscfg 0x4 0x8>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 5>;
                                status = "disabled";
                        };
-               };
-
-               qspi: spi@58003000 {
-                       compatible = "st,stm32f469-qspi";
-                       reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
-                       reg-names = "qspi", "qspi_mm";
-                       interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
-                       dmas = <&mdma1 22 0x2 0x10100002 0x0 0x0>,
-                              <&mdma1 22 0x2 0x10100008 0x0 0x0>;
-                       dma-names = "tx", "rx";
-                       clocks = <&rcc QSPI_K>;
-                       resets = <&rcc QSPI_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       status = "disabled";
-               };
-
-               sdmmc1: mmc@58005000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x00253180>;
-                       reg = <0x58005000 0x1000>;
-                       interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC1_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC1_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <120000000>;
-                       status = "disabled";
-               };
-
-               sdmmc2: mmc@58007000 {
-                       compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
-                       arm,primecell-periphid = <0x00253180>;
-                       reg = <0x58007000 0x1000>;
-                       interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SDMMC2_K>;
-                       clock-names = "apb_pclk";
-                       resets = <&rcc SDMMC2_R>;
-                       cap-sd-highspeed;
-                       cap-mmc-highspeed;
-                       max-frequency = <120000000>;
-                       status = "disabled";
-               };
-
-               crc1: crc@58009000 {
-                       compatible = "st,stm32f7-crc";
-                       reg = <0x58009000 0x400>;
-                       clocks = <&rcc CRC1>;
-                       status = "disabled";
-               };
-
-               ethernet0: ethernet@5800a000 {
-                       compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
-                       reg = <0x5800a000 0x2000>;
-                       reg-names = "stmmaceth";
-                       interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "macirq";
-                       clock-names = "stmmaceth",
-                                     "mac-clk-tx",
-                                     "mac-clk-rx",
-                                     "eth-ck",
-                                     "ptp_ref",
-                                     "ethstp";
-                       clocks = <&rcc ETHMAC>,
-                                <&rcc ETHTX>,
-                                <&rcc ETHRX>,
-                                <&rcc ETHCK_K>,
-                                <&rcc ETHPTP_K>,
-                                <&rcc ETHSTP>;
-                       st,syscon = <&syscfg 0x4>;
-                       snps,mixed-burst;
-                       snps,pbl = <2>;
-                       snps,en-tx-lpi-clockgating;
-                       snps,axi-config = <&stmmac_axi_config_0>;
-                       snps,tso;
-                       status = "disabled";
-
-                       stmmac_axi_config_0: stmmac-axi-config {
-                               snps,wr_osr_lmt = <0x7>;
-                               snps,rd_osr_lmt = <0x7>;
-                               snps,blen = <0 0 0 0 16 8 4>;
-                       };
-               };
-
-               usbh_ohci: usb@5800c000 {
-                       compatible = "generic-ohci";
-                       reg = <0x5800c000 0x1000>;
-                       clocks = <&usbphyc>, <&rcc USBH>;
-                       resets = <&rcc USBH_R>;
-                       interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
-                       phys = <&usbphyc_port0>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               usbh_ehci: usb@5800d000 {
-                       compatible = "generic-ehci";
-                       reg = <0x5800d000 0x1000>;
-                       clocks = <&usbphyc>, <&rcc USBH>;
-                       resets = <&rcc USBH_R>;
-                       interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
-                       companion = <&usbh_ohci>;
-                       phys = <&usbphyc_port0>;
-                       phy-names = "usb";
-                       status = "disabled";
-               };
-
-               ltdc: display-controller@5a001000 {
-                       compatible = "st,stm32-ltdc";
-                       reg = <0x5a001000 0x400>;
-                       interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc LTDC_PX>;
-                       clock-names = "lcd";
-                       resets = <&rcc LTDC_R>;
-                       status = "disabled";
-               };
 
-               iwdg2: watchdog@5a002000 {
-                       compatible = "st,stm32mp1-iwdg";
-                       reg = <0x5a002000 0x400>;
-                       clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
-                       clock-names = "pclk", "lsi";
-                       status = "disabled";
-               };
-
-               usbphyc: usbphyc@5a006000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       #clock-cells = <0>;
-                       compatible = "st,stm32mp1-usbphyc";
-                       reg = <0x5a006000 0x1000>;
-                       clocks = <&rcc USBPHY_K>;
-                       resets = <&rcc USBPHY_R>;
-                       vdda1v1-supply = <&reg11>;
-                       vdda1v8-supply = <&reg18>;
-                       status = "disabled";
-
-                       usbphyc_port0: usb-phy@0 {
-                               #phy-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       usbphyc_port1: usb-phy@1 {
-                               #phy-cells = <1>;
-                               reg = <1>;
-                       };
-               };
-
-               usart1: serial@5c000000 {
-                       compatible = "st,stm32h7-uart";
-                       reg = <0x5c000000 0x400>;
-                       interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc USART1_K>;
-                       wakeup-source;
-                       status = "disabled";
-               };
-
-               spi6: spi@5c001000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "st,stm32h7-spi";
-                       reg = <0x5c001000 0x400>;
-                       interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc SPI6_K>;
-                       resets = <&rcc SPI6_R>;
-                       dmas = <&mdma1 34 0x0 0x40008 0x0 0x0>,
-                              <&mdma1 35 0x0 0x40002 0x0 0x0>;
-                       dma-names = "rx", "tx";
-                       status = "disabled";
-               };
-
-               i2c4: i2c@5c002000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x5c002000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C4_K>;
-                       resets = <&rcc I2C4_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x8>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
-               rtc: rtc@5c004000 {
-                       compatible = "st,stm32mp1-rtc";
-                       reg = <0x5c004000 0x400>;
-                       clocks = <&rcc RTCAPB>, <&rcc RTC>;
-                       clock-names = "pclk", "rtc_ck";
-                       interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
-                       status = "disabled";
-               };
-
-               bsec: efuse@5c005000 {
-                       compatible = "st,stm32mp15-bsec";
-                       reg = <0x5c005000 0x400>;
-                       #address-cells = <1>;
-                       #size-cells = <1>;
-                       part_number_otp: part-number-otp@4 {
-                               reg = <0x4 0x1>;
-                       };
-                       vrefint: vrefin-cal@52 {
-                               reg = <0x52 0x2>;
-                       };
-                       ts_cal1: calib@5c {
-                               reg = <0x5c 0x2>;
-                       };
-                       ts_cal2: calib@5e {
-                               reg = <0x5e 0x2>;
+                       i2c6: i2c@5c009000 {
+                               compatible = "st,stm32mp15-i2c";
+                               reg = <0x5c009000 0x400>;
+                               interrupt-names = "event", "error";
+                               interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                            <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc I2C6_K>;
+                               resets = <&rcc I2C6_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               st,syscfg-fmp = <&syscfg 0x4 0x20>;
+                               wakeup-source;
+                               i2c-analog-filter;
+                               access-controllers = <&etzpc 12>;
+                               status = "disabled";
                        };
                };
 
-               i2c6: i2c@5c009000 {
-                       compatible = "st,stm32mp15-i2c";
-                       reg = <0x5c009000 0x400>;
-                       interrupt-names = "event", "error";
-                       interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc I2C6_K>;
-                       resets = <&rcc I2C6_R>;
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       st,syscfg-fmp = <&syscfg 0x4 0x20>;
-                       wakeup-source;
-                       i2c-analog-filter;
-                       status = "disabled";
-               };
-
                tamp: tamp@5c00a000 {
                        compatible = "st,stm32-tamp", "syscon", "simple-mfd";
                        reg = <0x5c00a000 0x400>;
index 486084e..4640daf 100644 (file)
                             <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
                             <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
        };
+};
 
-       soc {
-               m_can1: can@4400e000 {
-                       compatible = "bosch,m_can";
-                       reg = <0x4400e000 0x400>, <0x44011000 0x1400>;
-                       reg-names = "m_can", "message_ram";
-                       interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "int0", "int1";
-                       clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
-                       clock-names = "hclk", "cclk";
-                       bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
-                       status = "disabled";
-               };
+&etzpc {
+       m_can1: can@4400e000 {
+               compatible = "bosch,m_can";
+               reg = <0x4400e000 0x400>, <0x44011000 0x1400>;
+               reg-names = "m_can", "message_ram";
+               interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
+               clock-names = "hclk", "cclk";
+               bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
+               access-controllers = <&etzpc 62>;
+               status = "disabled";
+       };
 
-               m_can2: can@4400f000 {
-                       compatible = "bosch,m_can";
-                       reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
-                       reg-names = "m_can", "message_ram";
-                       interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "int0", "int1";
-                       clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
-                       clock-names = "hclk", "cclk";
-                       bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
-                       status = "disabled";
-               };
+       m_can2: can@4400f000 {
+               compatible = "bosch,m_can";
+               reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
+               reg-names = "m_can", "message_ram";
+               interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "int0", "int1";
+               clocks = <&rcc CK_HSE>, <&rcc FDCAN_K>;
+               clock-names = "hclk", "cclk";
+               bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
+               access-controllers = <&etzpc 62>;
+               status = "disabled";
        };
 };
index 66ed5f9..9cf5ed1 100644 (file)
@@ -10,6 +10,7 @@
 #include "stm32mp15-pinctrl.dtsi"
 #include "stm32mp15xxaa-pinctrl.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
 #include <dt-bindings/mfd/st,stpmic1.h>
 
 / {
                };
        };
 
+       led {
+               compatible = "gpio-leds";
+               led-blue {
+                       gpios = <&gpiod 9 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+                       default-state = "off";
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+       };
+
        sd_switch: regulator-sd_switch {
                compatible = "regulator-gpio";
                regulator-name = "sd_switch";
index b06a55a..9746571 100644 (file)
@@ -4,15 +4,14 @@
  * Author: Alexandre Torgue <alexandre.torgue@st.com> for STMicroelectronics.
  */
 
-/ {
-       soc {
-               cryp1: cryp@54001000 {
-                       compatible = "st,stm32mp1-cryp";
-                       reg = <0x54001000 0x400>;
-                       interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&rcc CRYP1>;
-                       resets = <&rcc CRYP1_R>;
-                       status = "disabled";
-               };
+&etzpc {
+       cryp1: cryp@54001000 {
+               compatible = "st,stm32mp1-cryp";
+               reg = <0x54001000 0x400>;
+               interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CRYP1>;
+               resets = <&rcc CRYP1_R>;
+               access-controllers = <&etzpc 9>;
+               status = "disabled";
        };
 };
index 790b29a..dafe485 100644 (file)
 
                pmmc: system-controller@2921c00 {
                        compatible = "ti,k2g-sci";
-                       /*
-                        * In case of rare platforms that does not use k2g as
-                        * system master, use /delete-property/
-                        */
-                       ti,system-reboot-controller;
                        mbox-names = "rx", "tx";
                        mboxes = <&msgmgr 5 2>,
                                <&msgmgr 0 0>;
index 989d5a6..0614ffd 100644 (file)
@@ -80,7 +80,7 @@
                 * because the can not be enabled simultaneously on a
                 * single SoC.
                 */
-               opp-50-300000000{
+               opp-50-300000000 {
                        /* OPP50 */
                        opp-hz = /bits/ 64 <300000000>;
                        opp-microvolt = <950000 931000 969000>;
@@ -88,7 +88,7 @@
                        opp-suspend;
                };
 
-               opp-100-275000000{
+               opp-100-275000000 {
                        /* OPP100-1 */
                        opp-hz = /bits/ 64 <275000000>;
                        opp-microvolt = <1100000 1078000 1122000>;
@@ -96,7 +96,7 @@
                        opp-suspend;
                };
 
-               opp-100-300000000{
+               opp-100-300000000 {
                        /* OPP100-2 */
                        opp-hz = /bits/ 64 <300000000>;
                        opp-microvolt = <1100000 1078000 1122000>;
                        opp-suspend;
                };
 
-               opp-100-500000000{
+               opp-100-500000000 {
                        /* OPP100-3 */
                        opp-hz = /bits/ 64 <500000000>;
                        opp-microvolt = <1100000 1078000 1122000>;
index 5fd1b38..0a1df30 100644 (file)
@@ -92,7 +92,7 @@
                        opp-supported-hw = <0xFF 0x08>;
                };
 
-               opp-800000000{
+               opp-800000000 {
                        /* OPP Turbo */
                        opp-hz = /bits/ 64 <800000000>;
                        opp-microvolt = <1260000 1234800 1285200>;
index 1045eb2..50a02c3 100644 (file)
 };
 
 &scm_conf_clocks {
-       dpll_gmac_h14x2_ctrl_ck: dpll_gmac_h14x2_ctrl_ck@3fc {
-               #clock-cells = <0>;
-               compatible = "ti,divider-clock";
-               clocks = <&dpll_gmac_x2_ck>;
-               ti,max-div = <63>;
-               reg = <0x03fc>;
-               ti,bit-shift = <20>;
-               ti,latch-bit = <26>;
-               assigned-clocks = <&dpll_gmac_h14x2_ctrl_ck>;
-               assigned-clock-rates = <80000000>;
-       };
-
-       dpll_gmac_h14x2_ctrl_mux_ck: dpll_gmac_h14x2_ctrl_mux_ck@3fc {
-               #clock-cells = <0>;
-               compatible = "ti,mux-clock";
-               clocks = <&dpll_gmac_ck>, <&dpll_gmac_h14x2_ctrl_ck>;
+       /* CTRL_CORE_SMA_SW_0 */
+       clock@3fc {
+               compatible = "ti,clksel";
                reg = <0x3fc>;
-               ti,bit-shift = <29>;
-               ti,latch-bit = <26>;
-               assigned-clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
-               assigned-clock-parents = <&dpll_gmac_h14x2_ctrl_ck>;
-       };
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_gmac_h14x2_ctrl_ck: clock@20 {
+                       reg = <20>;
+                       clock-output-names = "dpll_gmac_h14x2_ctrl_ck";
+                       compatible = "ti,divider-clock";
+                       clocks = <&dpll_gmac_x2_ck>;
+                       ti,max-div = <63>;
+                       ti,latch-bit = <26>;
+                       assigned-clocks = <&dpll_gmac_h14x2_ctrl_ck>;
+                       assigned-clock-rates = <80000000>;
+                       #clock-cells = <0>;
+               };
 
-       mcan_clk: mcan_clk@3fc {
-               #clock-cells = <0>;
-               compatible = "ti,gate-clock";
-               clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
-               ti,bit-shift = <27>;
-               reg = <0x3fc>;
+               mcan_clk: clock@27 {
+                       reg = <27>;
+                       clock-output-names = "mcan_clk";
+                       compatible = "ti,gate-clock";
+                       clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
+                       #clock-cells = <0>;
+               };
+
+               dpll_gmac_h14x2_ctrl_mux_ck: clock@29 {
+                       reg = <29>;
+                       clock-output-names = "dpll_gmac_h14x2_ctrl_mux_ck";
+                       compatible = "ti,mux-clock";
+                       clocks = <&dpll_gmac_ck>, <&dpll_gmac_h14x2_ctrl_ck>;
+                       ti,latch-bit = <26>;
+                       assigned-clocks = <&dpll_gmac_h14x2_ctrl_mux_ck>;
+                       assigned-clock-parents = <&dpll_gmac_h14x2_ctrl_ck>;
+                       #clock-cells = <0>;
+               };
        };
 };
 
index 06466d3..04f08b8 100644 (file)
                ti,invert-autoidle-bit;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_CORE */
+       clock@12c {
+               compatible = "ti,clksel";
+               reg = <0x12c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_core_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_core_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_core_ck: clock@120 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_DSP */
+       clock@240 {
+               compatible = "ti,clksel";
+               reg = <0x240>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_dsp_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_dsp_byp_mux";
+                       clocks = <&sys_clkin1>, <&dsp_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_dsp_ck: clock@234 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_IVA */
+       clock@1ac {
+               compatible = "ti,clksel";
+               reg = <0x1ac>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_iva_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_iva_byp_mux";
+                       clocks = <&sys_clkin1>, <&iva_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_iva_ck: clock@1a0 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_GPU */
+       clock@2e4 {
+               compatible = "ti,clksel";
+               reg = <0x2e4>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_gpu_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_gpu_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_gpu_ck: clock@2d8 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_DDR */
+       clock@21c {
+               compatible = "ti,clksel";
+               reg = <0x21c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_ddr_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_ddr_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_ddr_ck: clock@210 {
                ti,invert-autoidle-bit;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_GMAC */
+       clock@2b4 {
+               compatible = "ti,clksel";
+               reg = <0x2b4>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_gmac_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_gmac_byp_mux";
+                       clocks = <&sys_clkin1>, <&dpll_abe_m3x2_ck>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_gmac_ck: clock@2a8 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_EVE */
+       clock@290 {
+               compatible = "ti,clksel";
+               reg = <0x290>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_eve_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_eve_byp_mux";
+                       clocks = <&sys_clkin1>, <&eve_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_eve_ck: clock@284 {
                clock-div = <1>;
        };
 
-       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>;
-               clocks = <&dpll_core_h12x2_ck>;
-               ti,index-power-of-two;
+       /* CM_CLKSEL_CORE */
+       clock@100 {
+               compatible = "ti,clksel";
+               reg = <0x100>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               l3_iclk_div: clock@4 {
+                       reg = <4>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "l3_iclk_div";
+                       ti,max-div = <2>;
+                       clocks = <&dpll_core_h12x2_ck>;
+                       ti,index-power-of-two;
+                       #clock-cells = <0>;
+               };
        };
 
        l4_root_clk_div: clock-l4-root-clk-div {
                ti,index-starts-at-one;
        };
 
-       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>;
+       /* CM_CLKSEL_ABE_PLL_SYS */
+       clock@118 {
+               compatible = "ti,clksel";
+               reg = <0x118>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               abe_dpll_sys_clk_mux: clock@0 {
+                       reg = <0>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "abe_dpll_sys_clk_mux";
+                       clocks = <&sys_clkin1>, <&sys_clkin2>;
+                       #clock-cells = <0>;
+               };
        };
 
        abe_dpll_bypass_clk_mux: clock-abe-dpll-bypass-clk-mux@114 {
                ti,index-power-of-two;
        };
 
-       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;
+       /* CM_CLKSEL_DPLL_USB */
+       clock@18c {
+               compatible = "ti,clksel";
+               reg = <0x18c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dsp_gclk_div: clock@0 {
+                       reg = <0>;
+                       compatible = "ti,divider-clock";
+                       clock-output-names = "dsp_gclk_div";
+                       clocks = <&dpll_dsp_m2_ck>;
+                       ti,max-div = <64>;
+                       ti,index-power-of-two;
+                       #clock-cells = <0>;
+               };
        };
 
        gpu_dclk: clock-gpu-dclk@1a0 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_PER */
+       clock@14c {
+               compatible = "ti,clksel";
+               reg = <0x14c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_per_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_per_byp_mux";
+                       clocks = <&sys_clkin1>, <&per_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_per_ck: clock@140 {
                clock-div = <1>;
        };
 
-       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>;
+       /* CM_CLKSEL_DPLL_USB */
+       clock@18c {
+               compatible = "ti,clksel";
+               reg = <0x18c>;
+               #clock-cells = <2>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dpll_usb_byp_mux: clock@23 {
+                       reg = <23>;
+                       compatible = "ti,mux-clock";
+                       clock-output-names = "dpll_usb_byp_mux";
+                       clocks = <&sys_clkin1>, <&usb_dpll_hs_clk_div>;
+                       #clock-cells = <0>;
+               };
        };
 
        dpll_usb_ck: clock@180 {
index d334853..07c5b96 100644 (file)
                ti,current-limit = <100>;
                ti,weak-battery-voltage = <3400>;
                ti,battery-regulation-voltage = <4200>;
-               ti,charge-current = <650>;
+               ti,charge-current = <950>;
                ti,termination-current = <100>;
                ti,resistor-sense = <68>;
 
index 63e375c..bd54b51 100644 (file)
@@ -24,7 +24,7 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       memory@1,e0000000 {
+       memory@1e0000000 {
                device_type = "memory";
                reg = <0x1 0xe0000000 0x0 0x0>;
        };
index 21149b3..0db7b60 100644 (file)
@@ -39,6 +39,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64-model-b.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-tanix-tx6-mini.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h313-tanix-tx1.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-cb1-manta.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-bigtreetech-pi.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
@@ -47,3 +48,6 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-longanpi-3h.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-transpeed-8k618-t.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-2024.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-plus.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h700-anbernic-rg35xx-h.dtb
index e6d5bc0..d1f415a 100644 (file)
@@ -53,7 +53,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 0af6dcd..dec9960 100644 (file)
@@ -41,7 +41,7 @@
                };
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
index bfb806c..fd37946 100644 (file)
@@ -52,7 +52,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index 4f8529d..c8303a6 100644 (file)
@@ -68,7 +68,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
                clocks = <&rtc CLK_OSC32K_FANOUT>;
index 50ed2e9..6c65d5b 100644 (file)
@@ -79,7 +79,7 @@
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index 8784711..6eab61a 100644 (file)
        leds {
                compatible = "gpio-leds";
 
-               led-0 {
+               led0: led-0 {
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_BLUE>;
                        gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
+                       retain-state-suspended;
                };
 
-               led-1 {
+               led1: led-1 {
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_GREEN>;
                        gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */
+                       retain-state-suspended;
                };
 
-               led-2 {
+               led2: led-2 {
                        function = LED_FUNCTION_INDICATOR;
                        color = <LED_COLOR_ID_RED>;
                        gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */
+                       retain-state-suspended;
                };
        };
 
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_INDICATOR;
+               leds = <&led0>, <&led1>, <&led2>;
+       };
+
        reg_ps: ps-regulator {
                compatible = "regulator-fixed";
                regulator-name = "ps";
index 0a5607f..c6007df 100644 (file)
@@ -98,7 +98,7 @@
                enable-active-high;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
                post-power-on-delay-ms = <200>;
index 1128030..b407e1d 100644 (file)
@@ -74,7 +74,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
        };
index 57ac187..ce4aa44 100644 (file)
        gpu_opp_table: opp-table-gpu {
                compatible = "operating-points-v2";
 
-               opp-120000000 {
-                       opp-hz = /bits/ 64 <120000000>;
-               };
-
-               opp-312000000 {
-                       opp-hz = /bits/ 64 <312000000>;
-               };
-
                opp-432000000 {
                        opp-hz = /bits/ 64 <432000000>;
                };
        };
 
-       osc24M: osc24M_clk {
+       osc24M: osc24M-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
                clock-output-names = "osc24M";
        };
 
-       osc32k: osc32k_clk {
+       osc32k: osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
                        };
 
                        trips {
-                               cpu_alert0: cpu_alert0 {
+                               cpu_alert0: cpu-alert0 {
                                        /* milliCelsius */
                                        temperature = <75000>;
                                        hysteresis = <2000>;
                                        type = "passive";
                                };
 
-                               cpu_alert1: cpu_alert1 {
+                               cpu_alert1: cpu-alert1 {
                                        /* milliCelsius */
                                        temperature = <90000>;
                                        hysteresis = <2000>;
                                        type = "hot";
                                };
 
-                               cpu_crit: cpu_crit {
+                               cpu_crit: cpu-crit {
                                        /* milliCelsius */
                                        temperature = <110000>;
                                        hysteresis = <2000>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts b/arch/arm64/boot/dts/allwinner/sun50i-h313-tanix-tx1.dts
new file mode 100644 (file)
index 0000000..bb2cde5
--- /dev/null
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (C) 2024 Arm Ltd.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Tanix TX1";
+       compatible = "oranth,tanix-tx1", "allwinner,sun50i-h616";
+
+       aliases {
+               serial0 = &uart0;
+               ethernet0 = &sdio_wifi;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key {
+                       label = "hidden";
+                       linux,code = <BTN_0>;
+                       gpios = <&pio 7 9 GPIO_ACTIVE_LOW>; /* PH9 */
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
+                       default-state = "on";
+               };
+       };
+
+       wifi_pwrseq: pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
+               clock-names = "ext_clock";
+               pinctrl-0 = <&x32clk_fanout_pin>;
+               pinctrl-names = "default";
+               reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+       };
+
+       reg_vcc5v: vcc5v {
+               /* board wide 5V supply directly from the DC input */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc2>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ir {
+       status = "okay";
+};
+
+&mmc1 {
+       vmmc-supply = <&reg_dldo1>;
+       vqmmc-supply = <&reg_aldo1>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       sdio_wifi: wifi@1 {
+               reg = <1>;
+       };
+};
+
+&mmc2 {
+       vmmc-supply = <&reg_dldo1>;
+       vqmmc-supply = <&reg_aldo1>;
+       bus-width = <8>;
+       non-removable;
+       max-frequency = <100000000>;
+       cap-mmc-hw-reset;
+       mmc-ddr-1_8v;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pc-supply = <&reg_aldo1>;
+       vcc-pf-supply = <&reg_dldo1>;
+       vcc-pg-supply = <&reg_aldo1>;
+       vcc-ph-supply = <&reg_dldo1>;
+       vcc-pi-supply = <&reg_dldo1>;
+};
+
+&r_i2c {
+       status = "okay";
+
+       axp313: pmic@36 {
+               compatible = "x-powers,axp313a";
+               reg = <0x36>;
+               #interrupt-cells = <1>;
+               interrupt-controller;
+
+               vin1-supply = <&reg_vcc5v>;
+               vin2-supply = <&reg_vcc5v>;
+               vin3-supply = <&reg_vcc5v>;
+
+               regulators {
+                       /* Supplies VCC-PLL, so needs to be always on. */
+                       reg_aldo1: aldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc1v8";
+                       };
+
+                       /* Supplies VCC-IO, so needs to be always on. */
+                       reg_dldo1: dldo1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc3v3";
+                       };
+
+                       reg_dcdc1: dcdc1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <810000>;
+                               regulator-max-microvolt = <990000>;
+                               regulator-name = "vdd-gpu-sys";
+                       };
+
+                       reg_dcdc2: dcdc2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <810000>;
+                               regulator-max-microvolt = <1120000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "vdd-dram";
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+&usbotg {
+       dr_mode = "host";       /* USB A type receptable */
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
index 4c3921a..b69032c 100644 (file)
@@ -68,7 +68,7 @@
                states = <1100000 0>, <1300000 1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                post-power-on-delay-ms = <200>;
index a3e040d..3a7ee44 100644 (file)
                states = <1100000 0x0>, <1300000 0x1>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; /* PL7 */
                post-power-on-delay-ms = <200>;
        non-removable;
        status = "okay";
 
-       rtl8189etv: sdio_wifi@1 {
+       rtl8189etv: wifi@1 {
                reg = <1>;
        };
 };
index d7f8bad..b699bb9 100644 (file)
@@ -85,7 +85,7 @@
                status = "okay";
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 2 14 GPIO_ACTIVE_LOW>; /* PC14 */
        };
index 7ec5ac8..ae85131 100644 (file)
@@ -97,7 +97,7 @@
         * Explicitly define the sdio device, so that we can add an ethernet
         * alias for it (which e.g. makes u-boot set a mac-address).
         */
-       rtl8189ftv: sdio_wifi@1 {
+       rtl8189ftv: wifi@1 {
                reg = <1>;
        };
 };
index 22530ac..734481e 100644 (file)
@@ -52,7 +52,7 @@
                regulator-max-microvolt = <3300000>;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
                post-power-on-delay-ms = <200>;
index 381d58c..3be1e8c 100644 (file)
@@ -34,7 +34,7 @@
                };
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index 6fc65e8..6c3bfe3 100644 (file)
@@ -33,7 +33,7 @@
                };
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index fb31dcb..a3f65a4 100644 (file)
@@ -11,7 +11,7 @@
                serial1 = &uart1; /* BT-UART */
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
index 9274512..13b0714 100644 (file)
@@ -32,7 +32,7 @@
                };
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index b710f1a..66fe039 100644 (file)
@@ -5,13 +5,13 @@
 
 #include "sun50i-h6-pine-h64.dts"
 
+/delete-node/ &reg_gmac_3v3;
+
 / {
        model = "Pine H64 model B";
        compatible = "pine64,pine-h64-model-b", "allwinner,sun50i-h6";
 
-       /delete-node/ reg_gmac_3v3;
-
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
                post-power-on-delay-ms = <200>;
index 1ffd68f..3910393 100644 (file)
@@ -22,7 +22,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       ext_osc32k: ext_osc32k_clk {
+       ext_osc32k: ext-osc32k-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <32768>;
index d11e504..8a8591c 100644 (file)
@@ -68,7 +68,7 @@
                status = "disabled";
        };
 
-       osc24M: osc24M_clk {
+       osc24M: osc24M-clk {
                #clock-cells = <0>;
                compatible = "fixed-clock";
                clock-frequency = <24000000>;
index b2e85e5..f8ecd7d 100644 (file)
                        };
 
                        i2c0_pins: i2c0-pins {
-                               pins = "PI6", "PI7";
+                               pins = "PI5", "PI6";
                                function = "i2c0";
                        };
 
                        #reset-cells = <1>;
                };
 
+               nmi_intc: interrupt-controller@7010320 {
+                       compatible = "allwinner,sun50i-h616-nmi",
+                                    "allwinner,sun9i-a80-nmi";
+                       reg = <0x07010320 0xc>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+               };
+
                r_pio: pinctrl@7022000 {
                        compatible = "allwinner,sun50i-h616-r-pinctrl";
                        reg = <0x07022000 0x400>;
index ac0a2b7..a1d0cac 100644 (file)
@@ -41,7 +41,7 @@
                regulator-always-on;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                clocks = <&rtc CLK_OSC32K_FANOUT>;
                clock-names = "ext_clock";
index b6e3c16..c204dd4 100644 (file)
@@ -42,7 +42,7 @@
                regulator-always-on;
        };
 
-       wifi_pwrseq: wifi_pwrseq {
+       wifi_pwrseq: pwrseq {
                compatible = "mmc-pwrseq-simple";
                reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
                post-power-on-delay-ms = <200>;
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts
new file mode 100644 (file)
index 0000000..ee30584
--- /dev/null
@@ -0,0 +1,327 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ */
+
+/dts-v1/;
+
+#include "sun50i-h616.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/linux-event-codes.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/leds/common.h>
+
+/ {
+       model = "Anbernic RG35XX 2024";
+       chassis-type = "handset";
+       compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700";
+
+       aliases {
+               serial0 = &uart0;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio_keys_gamepad: gpio-keys-gamepad {
+               compatible = "gpio-keys";
+
+               button-a {
+                       label = "Action-Pad A";
+                       gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       label = "Action-Pad B";
+                       gpios = <&pio 0 1 GPIO_ACTIVE_LOW>; /* PA1 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       label = "D-Pad Down";
+                       gpios = <&pio 4 0 GPIO_ACTIVE_LOW>; /* PE0 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-l1 {
+                       label = "Key L1";
+                       gpios = <&pio 0 10 GPIO_ACTIVE_LOW>; /* PA10 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       label = "Key L2";
+                       gpios = <&pio 0 11 GPIO_ACTIVE_LOW>; /* PA11 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       label = "D-Pad left";
+                       gpios = <&pio 0 8 GPIO_ACTIVE_LOW>; /* PA8 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-menu {
+                       label = "Key Menu";
+                       gpios = <&pio 4 3 GPIO_ACTIVE_LOW>; /* PE3 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_MODE>;
+               };
+
+               button-r1 {
+                       label = "Key R1";
+                       gpios = <&pio 0 12 GPIO_ACTIVE_LOW>; /* PA12 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       label = "Key R2";
+                       gpios = <&pio 0 7 GPIO_ACTIVE_LOW>; /* PA7 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-right {
+                       label = "D-Pad Right";
+                       gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       label = "Key Select";
+                       gpios = <&pio 0 5 GPIO_ACTIVE_LOW>; /* PA5 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_SELECT>;
+               };
+               button-start {
+                       label = "Key Start";
+                       gpios = <&pio 0 4 GPIO_ACTIVE_LOW>; /* PA4 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_START>;
+               };
+
+               button-up {
+                       label = "D-Pad Up";
+                       gpios = <&pio 0 6 GPIO_ACTIVE_LOW>; /* PA6 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       label = "Action-Pad X";
+                       gpios = <&pio 0 3 GPIO_ACTIVE_LOW>; /* PA3 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       label = "Action Pad Y";
+                       gpios = <&pio 0 2 GPIO_ACTIVE_LOW>; /* PA2 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       gpio-keys-volume {
+               compatible = "gpio-keys";
+               autorepeat;
+
+               button-vol-up {
+                       label = "Key Volume Up";
+                       gpios = <&pio 4 1 GPIO_ACTIVE_LOW>; /* PE1 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_VOLUMEUP>;
+               };
+
+               button-vol-down {
+                       label = "Key Volume Down";
+                       gpios = <&pio 4 2 GPIO_ACTIVE_LOW>; /* PE2 */
+                       linux,input-type = <EV_KEY>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       function = LED_FUNCTION_POWER;
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&pio 8 12 GPIO_ACTIVE_HIGH>; /* PI12 */
+                       default-state = "on";
+               };
+       };
+
+       reg_vcc5v: regulator-vcc5v { /* USB-C power input */
+               compatible = "regulator-fixed";
+               regulator-name = "vcc-5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&reg_dcdc1>;
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&mmc0 {
+       vmmc-supply = <&reg_cldo3>;
+       disable-wp;
+       cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;  /* PF6 */
+       bus-width = <4>;
+       status = "okay";
+};
+
+&ohci0 {
+       status = "okay";
+};
+
+&pio {
+       vcc-pa-supply = <&reg_cldo3>;
+       vcc-pc-supply = <&reg_cldo3>;
+       vcc-pe-supply = <&reg_cldo3>;
+       vcc-pf-supply = <&reg_cldo3>;
+       vcc-pg-supply = <&reg_aldo4>;
+       vcc-ph-supply = <&reg_cldo3>;
+       vcc-pi-supply = <&reg_cldo3>;
+};
+
+&r_rsb {
+       status = "okay";
+
+       axp717: pmic@3a3 {
+               compatible = "x-powers,axp717";
+               reg = <0x3a3>;
+               interrupt-controller;
+               #interrupt-cells = <1>;
+               interrupt-parent = <&nmi_intc>;
+               interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+               vin1-supply = <&reg_vcc5v>;
+               vin2-supply = <&reg_vcc5v>;
+               vin3-supply = <&reg_vcc5v>;
+               vin4-supply = <&reg_vcc5v>;
+
+               regulators {
+                       reg_dcdc1: dcdc1 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-name = "vdd-cpu";
+                       };
+
+                       reg_dcdc2: dcdc2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <940000>;
+                               regulator-max-microvolt = <940000>;
+                               regulator-name = "vdd-gpu-sys";
+                       };
+
+                       reg_dcdc3: dcdc3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-name = "vdd-dram";
+                       };
+
+                       reg_aldo1: aldo1 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_aldo2: aldo2 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_aldo3: aldo3 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_aldo4: aldo4 {
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc-pg";
+                       };
+
+                       reg_bldo1: bldo1 {
+                               /* 1.8v - unused */
+                       };
+
+                       reg_bldo2: bldo2 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc-pll";
+                       };
+
+                       reg_bldo3: bldo3 {
+                               /* 2.8v - unused */
+                       };
+
+                       reg_bldo4: bldo4 {
+                               /* 1.2v - unused */
+                       };
+
+                       reg_cldo1: cldo1 {
+                               /* 3.3v - audio codec - not yet implemented */
+                       };
+
+                       reg_cldo2: cldo2 {
+                               /* 3.3v - unused */
+                       };
+
+                       reg_cldo3: cldo3 {
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-io";
+                       };
+
+                       reg_cldo4: cldo4 {
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc-wifi";
+                       };
+
+                       reg_boost: boost {
+                               regulator-min-microvolt = <5000000>;
+                               regulator-max-microvolt = <5200000>;
+                               regulator-name = "boost";
+                       };
+
+                       reg_cpusldo: cpusldo {
+                               /* unused */
+                       };
+               };
+       };
+};
+
+&uart0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart0_ph_pins>;
+       status = "okay";
+};
+
+/* the AXP717 has USB type-C role switch functionality, not yet described by the binding */
+&usbotg {
+       dr_mode = "peripheral";   /* USB type-C receptable */
+       status = "okay";
+};
+
+&usbphy {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-h.dts
new file mode 100644 (file)
index 0000000..6303625
--- /dev/null
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ * Copyright (C) 2024 Chris Morgan <macroalpha82@gmail.com>.
+ */
+
+#include "sun50i-h700-anbernic-rg35xx-plus.dts"
+
+/ {
+       model = "Anbernic RG35XX H";
+       compatible = "anbernic,rg35xx-h", "allwinner,sun50i-h700";
+};
+
+&gpio_keys_gamepad {
+       button-thumbl {
+               label = "GPIO Thumb Left";
+               gpios = <&pio 4 8 GPIO_ACTIVE_LOW>; /* PE8 */
+               linux,input-type = <EV_KEY>;
+               linux,code = <BTN_THUMBL>;
+       };
+
+       button-thumbr {
+               label = "GPIO Thumb Right";
+               gpios = <&pio 4 9 GPIO_ACTIVE_LOW>; /* PE9 */
+               linux,input-type = <EV_KEY>;
+               linux,code = <BTN_THUMBR>;
+       };
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&ohci1 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-plus.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-plus.dts
new file mode 100644 (file)
index 0000000..60a8e49
--- /dev/null
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+/*
+ * Copyright (C) 2024 Ryan Walklin <ryan@testtoast.com>.
+ */
+
+#include "sun50i-h700-anbernic-rg35xx-2024.dts"
+
+/ {
+       model = "Anbernic RG35XX Plus";
+       compatible = "anbernic,rg35xx-plus", "allwinner,sun50i-h700";
+
+       wifi_pwrseq: pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rtc CLK_OSC32K_FANOUT>;
+               clock-names = "ext_clock";
+               pinctrl-0 = <&x32clk_fanout_pin>;
+               pinctrl-names = "default";
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+       };
+};
+
+/* SDIO WiFi RTL8821CS */
+&mmc1 {
+       vmmc-supply = <&reg_cldo4>;
+       vqmmc-supply = <&reg_aldo4>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       bus-width = <4>;
+       non-removable;
+       status = "okay";
+
+       sdio_wifi: wifi@1 {
+               reg = <1>;
+               interrupt-parent = <&pio>;
+               interrupts = <6 15 IRQ_TYPE_LEVEL_LOW>; /* PG15 */
+               interrupt-names = "host-wake";
+       };
+};
+
+/* Bluetooth RTL8821CS */
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth {
+               compatible = "realtek,rtl8821cs-bt", "realtek,rtl8723bs-bt";
+               device-wake-gpios = <&pio 6 17 GPIO_ACTIVE_HIGH>; /* PG17 */
+               enable-gpios = <&pio 6 19 GPIO_ACTIVE_HIGH>; /* PG19 */
+               host-wake-gpios = <&pio 6 16 GPIO_ACTIVE_HIGH>; /* PG16 */
+       };
+};
index 072fe20..cbbc53c 100644 (file)
@@ -79,7 +79,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <0 170 4>,
                             <0 171 4>,
                             <0 172 4>,
index dbf2dce..da9de49 100644 (file)
@@ -39,6 +39,7 @@
 / {
        model = "Annapurna Labs Alpine v2";
        compatible = "al,alpine-v2";
+       interrupt-parent = <&gic>;
        #address-cells = <2>;
        #size-cells = <2>;
 
                clock-frequency = <1000000>;
        };
 
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmu {
+               compatible = "arm,cortex-a57-pmu";
+               interrupts = <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>;
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                interrupt-parent = <&gic>;
                ranges;
 
-               timer {
-                       compatible = "arm,armv8-timer";
-                       interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
-                                    <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
-                                    <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
-                                    <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
-               };
-
-               pmu {
-                       compatible = "arm,armv8-pmuv3";
-                       interrupts = <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: interrupt-controller@f0200000 {
                        compatible = "arm,gic-v3";
                        reg = <0x0 0xf0200000 0x0 0x10000>,     /* GIC Dist */
                        al,msi-num-spis = <160>;
                };
 
-               io-fabric {
+               io-fabric@fc000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 3ea178a..8b6156b 100644 (file)
                        next-level-cache = <&cluster3_l2>;
                };
 
-               cluster0_l2: cache@0 {
+               cluster0_l2: cache-0 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                        cache-unified;
                };
 
-               cluster1_l2: cache@100 {
+               cluster1_l2: cache-100 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                        cache-unified;
                };
 
-               cluster2_l2: cache@200 {
+               cluster2_l2: cache-200 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                        cache-unified;
                };
 
-               cluster3_l2: cache@300 {
+               cluster3_l2: cache-300 {
                        compatible = "cache";
                        cache-size = <0x200000>;
                        cache-line-size = <64>;
                #size-cells = <2>;
                ranges;
 
-               gic: interrupt-controller@f0000000 {
+               gic: interrupt-controller@f0800000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                        interrupt-controller;
                        interrupt-parent = <&gic>;
                };
 
-               io-fabric {
+               io-fabric@fc000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 568bcc3..6c1b7b8 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2023 Advanced Micro Devices, Inc.
  */
index 46b6c67..d12e9a7 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2022 Advanced Micro Devices, Inc.
  */
index c3f4da2..20b0fa0 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Device Tree file for AMD Pensando Elba Board.
  *
index cf761a0..6ea2d77 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2023 Advanced Micro Devices, Inc.
  */
index 674890c..758bce0 100644 (file)
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
+// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 /*
  * Copyright 2020-2022 Advanced Micro Devices, Inc.
  */
index 2e80690..6e05cf1 100644 (file)
@@ -15,7 +15,7 @@
 
        chosen { };
 
-       memory {
+       memory@100000000 {
                device_type = "memory";
                reg = < 0x1 0x00000000 0x0 0x80000000 >;
        };
index 033e10e..e7644cd 100644 (file)
@@ -15,7 +15,7 @@
 
        chosen { };
 
-       memory {
+       memory@100000000 {
                device_type = "memory";
                reg = < 0x1 0x00000000 0x0 0x80000000 >; /* Updated by bootloader */
        };
index 65ebac3..ea5721e 100644 (file)
                };
        };
 
+       refclk: refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <1>;
+               clock-frequency = <100000000>;
+               clock-output-names = "refclk";
+       };
+
        pmu {
                compatible = "arm,armv8-pmuv3";
                interrupts = <1 12 0xff04>;
                        #size-cells = <2>;
                        ranges;
 
-                       refclk: refclk {
-                               compatible = "fixed-clock";
-                               #clock-cells = <1>;
-                               clock-frequency = <100000000>;
-                               clock-output-names = "refclk";
-                       };
-
                        pmdpll: pmdpll@170000f0 {
                                compatible = "apm,xgene-pcppll-v2-clock";
                                #clock-cells = <1>;
index 988928c..532401b 100644 (file)
                interrupts = <1 9 0xf04>;       /* GIC Maintenence IRQ */
        };
 
+       refclk: refclk {
+               compatible = "fixed-clock";
+               #clock-cells = <1>;
+               clock-frequency = <100000000>;
+               clock-output-names = "refclk";
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <1 0 0xff08>,      /* Secure Phys IRQ */
        };
 
        pmu {
-               compatible = "apm,potenza-pmu", "arm,armv8-pmuv3";
+               compatible = "apm,potenza-pmu";
                interrupts = <1 12 0xff04>;
        };
 
                        #address-cells = <2>;
                        #size-cells = <2>;
                        ranges;
-                       refclk: refclk {
-                               compatible = "fixed-clock";
-                               #clock-cells = <1>;
-                               clock-frequency = <100000000>;
-                               clock-output-names = "refclk";
-                       };
 
                        pcppll: pcppll@17000100 {
                                compatible = "apm,xgene-pcppll-clock";
index b897f55..98ed2b3 100644 (file)
                        };
                };
 
-               big_cluster_thermal_zone: big-cluster-thermal {
+               big_cluster_thermal_zone: big-cl-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 21>;
                        status = "disabled";
                };
 
-               little_cluster_thermal_zone: little-cluster-thermal {
+               little_cluster_thermal_zone: little-cl-thermal {
                        polling-delay = <1000>;
                        polling-delay-passive = <100>;
                        thermal-sensors = <&scpi_sensors0 22>;
index 31929e2..f38c5b6 100644 (file)
                        thermal-sensors = <&scmi_sensors0 3>;
                };
 
-               big-cluster-thermal {
+               big-cl-thermal {
                        thermal-sensors = <&scmi_sensors0 21>;
                };
 
-               little-cluster-thermal {
+               little-cl-thermal {
                        thermal-sensors = <&scmi_sensors0 22>;
                };
 
index 8db4243..9115c99 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
        };
index e01cf4f..8b92481 100644 (file)
                        reg-names = "nand", "nand-int-base";
                        interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "nand_ctlrdy";
+                       brcm,wp-not-connected;
                        status = "disabled";
 
                        nandcs: nand@0 {
index 030ffa5..e5b3764 100644 (file)
@@ -34,7 +34,6 @@
 };
 
 &nand_controller {
-       brcm,wp-not-connected;
        status = "okay";
 };
 
index dec5a11..f43cfe6 100644 (file)
@@ -50,7 +50,7 @@
                bootargs = "earlycon=uart8250,mmio32,0x66130000";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0x00000000 0x40000000>;
        };
index 1d314f1..c50df1d 100644 (file)
@@ -47,7 +47,7 @@
                bootargs = "earlycon=uart8250,mmio32,0x66130000";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0x00000001 0x00000000>;
        };
index 896d1f3..cfd9fd2 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a57-pmu";
                interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
index d8516ec..857fa42 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a72-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 8ad31de..cc860a8 100644 (file)
        };
 
        pmu {
-               compatible = "cavium,thunder-pmu", "arm,armv8-pmuv3";
+               compatible = "cavium,thunder-pmu";
                interrupts = <1 7 4>;
        };
 
+       refclk50mhz: refclk50mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <50000000>;
+               clock-output-names = "refclk50mhz";
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
                ranges;
 
-               refclk50mhz: refclk50mhz {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <50000000>;
-                       clock-output-names = "refclk50mhz";
-               };
-
-               gic0: interrupt-controller@8010,00000000 {
+               gic0: interrupt-controller@801000000000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                        #address-cells = <2>;
                        };
                };
 
-               uaa0: serial@87e0,24000000 {
+               uaa0: serial@87e024000000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x87e0 0x24000000 0x0 0x1000>;
                        interrupts = <1 21 4>;
                        clock-names = "apb_pclk";
                };
 
-               uaa1: serial@87e0,25000000 {
+               uaa1: serial@87e025000000 {
                        compatible = "arm,pl011", "arm,primecell";
                        reg = <0x87e0 0x25000000 0x0 0x1000>;
                        interrupts = <1 22 4>;
index d005e1e..89fc410 100644 (file)
@@ -14,7 +14,7 @@
        model = "Cavium ThunderX2 CN99XX";
        compatible = "cavium,thunderx2-cn9900", "brcm,vulcan-soc";
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x00000000 0x80000000 0x0 0x80000000>,  /* 2G @ 2G  */
                      <0x00000008 0x80000000 0x0 0x80000000>;  /* 2G @ 34G */
index 3419bd2..6dfe78a 100644 (file)
@@ -83,7 +83,7 @@
        };
 
        pmu {
-               compatible = "brcm,vulcan-pmu", "arm,armv8-pmuv3";
+               compatible = "brcm,vulcan-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>; /* PMU overflow */
        };
 
 
                /* ECAM at 0x3000_0000 - 0x4000_0000 */
                reg = <0x0 0x30000000  0x0 0x10000000>;
-               reg-names = "PCI ECAM";
 
                /*
                 * PCI ranges:
index 7fbbec0..0b9053b 100644 (file)
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi0_bus>;
                        num-cs = <1>;
+                       fifo-depth = <256>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi1_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi2_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi3_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&spi4_bus>;
                        num-cs = <1>;
+                       fifo-depth = <64>;
                        status = "disabled";
                };
 
index 2ba67c3..0706c85 100644 (file)
@@ -93,6 +93,8 @@
                        compatible = "arm,cortex-a55";
                        reg = <0x0>;
                        enable-method = "psci";
+                       clocks = <&cmu_cpucl0 CLK_CLUSTER0_SCLK>;
+                       clock-names = "cluster0_clk";
                };
                cpu1: cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a55";
                        reg = <0x100>;
                        enable-method = "psci";
+                       clocks = <&cmu_cpucl1 CLK_CLUSTER1_SCLK>;
+                       clock-names = "cluster1_clk";
                };
                cpu5: cpu@101 {
                        device_type = "cpu";
                                      "dout_peri_uart", "dout_peri_ip";
                };
 
+               cmu_cpucl1: clock-controller@10800000 {
+                       compatible = "samsung,exynos850-cmu-cpucl1";
+                       reg = <0x10800000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&oscclk>, <&cmu_top CLK_DOUT_CPUCL1_SWITCH>,
+                                <&cmu_top CLK_DOUT_CPUCL1_DBG>;
+                       clock-names = "oscclk", "dout_cpucl1_switch",
+                                     "dout_cpucl1_dbg";
+               };
+
+               cmu_cpucl0: clock-controller@10900000 {
+                       compatible = "samsung,exynos850-cmu-cpucl0";
+                       reg = <0x10900000 0x8000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&oscclk>, <&cmu_top CLK_DOUT_CPUCL0_SWITCH>,
+                                <&cmu_top CLK_DOUT_CPUCL0_DBG>;
+                       clock-names = "oscclk", "dout_cpucl0_switch",
+                                     "dout_cpucl0_dbg";
+               };
+
                cmu_g3d: clock-controller@11400000 {
                        compatible = "samsung,exynos850-cmu-g3d";
                        reg = <0x11400000 0x8000>;
index c871a2f..0248329 100644 (file)
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <256>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <256>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <256>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
                                num-cs = <1>;
                                #address-cells = <1>;
                                #size-cells = <0>;
+                               fifo-depth = <64>;
                                status = "disabled";
                        };
 
index 6ccade2..5e8ffe0 100644 (file)
@@ -29,8 +29,8 @@
 
        gpio-keys {
                compatible = "gpio-keys";
-               pinctrl-names = "default";
                pinctrl-0 = <&key_voldown>, <&key_volup>, <&key_power>;
+               pinctrl-names = "default";
 
                button-vol-down {
                        label = "KEY_VOLUMEDOWN";
                        wakeup-source;
                };
        };
+
+       /* TODO: Remove this once PMIC is implemented  */
+       reg_placeholder: regulator-0 {
+               compatible = "regulator-fixed";
+               regulator-name = "placeholder_reg";
+       };
+
+       /* TODO: Remove this once S2MPG11 slave PMIC is implemented  */
+       ufs_0_fixed_vcc_reg: regulator-1 {
+               compatible = "regulator-fixed";
+               regulator-name = "ufs-vcc";
+               gpio = <&gpp0 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+       };
 };
 
 &ext_24_5m {
 };
 
 &serial_0 {
-       pinctrl-names = "default";
-       pinctrl-0 = <&uart0_bus>;
+       status = "okay";
+};
+
+&ufs_0 {
+       status = "okay";
+       vcc-supply = <&ufs_0_fixed_vcc_reg>;
+};
+
+&ufs_0_phy {
+       status = "okay";
+};
+
+&usbdrd31 {
+       status = "okay";
+       vdd10-supply = <&reg_placeholder>;
+       vdd33-supply = <&reg_placeholder>;
+};
+
+&usbdrd31_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+       role-switch-default-mode = "peripheral";
+       maximum-speed = "super-speed-plus";
+       status = "okay";
+};
+
+&usbdrd31_phy {
        status = "okay";
 };
 
index 55e6bcb..a66e996 100644 (file)
                pinctrl_peric0: pinctrl@10840000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x10840000 0x00001000>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_GPIO_PERIC0_PCLK>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 625 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               usi1: usi@109000c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109000c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1000>;
+                       status = "disabled";
+
+                       hsi2c_1: i2c@10900000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10900000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c1_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_1: serial@10900000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10900000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart1_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_1: spi@10900000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10900000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_0>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 635 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi1_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi2: usi@109100c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109100c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1004>;
+                       status = "disabled";
+
+                       hsi2c_2: i2c@10910000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10910000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c2_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_2: serial@10910000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10910000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart2_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_2: spi@10910000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10910000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_1>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 636 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi2_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi3: usi@109200c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109200c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1008>;
+                       status = "disabled";
+
+                       hsi2c_3: i2c@10920000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10920000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c3_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_3: serial@10920000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10920000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart3_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_3: spi@10920000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10920000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 637 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi3_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi4: usi@109300c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109300c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x100c>;
+                       status = "disabled";
+
+                       hsi2c_4: i2c@10930000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10930000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c4_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_4: serial@10930000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10930000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart4_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_4: spi@10930000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10930000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_3>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 638 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi4_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi5: usi@109400c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109400c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1010>;
+                       status = "disabled";
+
+                       hsi2c_5: i2c@10940000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10940000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c5_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_5: serial@10940000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10940000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart5_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_5: spi@10940000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10940000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_4>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 639 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi5_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi6: usi@109500c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109500c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1014>;
+                       status = "disabled";
+
+                       hsi2c_6: i2c@10950000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10950000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c6_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_6: serial@10950000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10950000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart6_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_6: spi@10950000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10950000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_5>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 640 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi6_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi7: usi@109600c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x109600c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1018>;
+                       status = "disabled";
+
+                       hsi2c_7: i2c@10960000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10960000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c7_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_7: serial@10960000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10960000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart7_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_7: spi@10960000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10960000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_6>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi7_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                usi8: usi@109700c0 {
-                       compatible = "google,gs101-usi",
-                                    "samsung,exynos850-usi";
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
                        reg = <0x109700c0 0x20>;
                        ranges;
                        #address-cells = <1>;
                                interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               pinctrl-names = "default";
-                               pinctrl-0 = <&hsi2c8_bus>;
                                clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>,
                                         <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>;
                                clock-names = "hsi2c", "hsi2c_pclk";
+                               pinctrl-0 = <&hsi2c8_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_8: serial@10970000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10970000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart8_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_8: spi@10970000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10970000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_PCLK_7>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 642 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi8_bus>;
+                               pinctrl-names = "default";
                                status = "disabled";
                        };
                };
 
                usi_uart: usi@10a000c0 {
-                       compatible = "google,gs101-usi",
-                                    "samsung,exynos850-usi";
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
                        reg = <0x10a000c0 0x20>;
                        ranges;
                        #address-cells = <1>;
                        serial_0: serial@10a00000 {
                                compatible = "google,gs101-uart";
                                reg = <0x10a00000 0xc0>;
-                               interrupts = <GIC_SPI 634
-                                             IRQ_TYPE_LEVEL_HIGH 0>;
+                               interrupts = <GIC_SPI 634 IRQ_TYPE_LEVEL_HIGH 0>;
                                clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0>,
                                         <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_0>;
                                clock-names = "uart", "clk_uart_baud0";
+                               pinctrl-0 = <&uart0_bus>;
+                               pinctrl-names = "default";
                                samsung,uart-fifosize = <256>;
                                status = "disabled";
                        };
                };
 
+               usi14: usi@10a200c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10a200c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>,
+                                <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric0 0x1028>;
+                       status = "disabled";
+
+                       hsi2c_14: i2c@10a20000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10a20000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c14_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_14: serial@10a20000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10a20000 0xc0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart14_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_14: spi@10a20000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10a20000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_2>,
+                                        <&cmu_peric0 CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 643 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi14_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                cmu_peric1: clock-controller@10c00000 {
                        compatible = "google,gs101-cmu-peric1";
                        reg = <0x10c00000 0x4000>;
                pinctrl_peric1: pinctrl@10c40000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x10c40000 0x00001000>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_GPIO_PERIC1_PCLK>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               usi0: usi@10d100c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d100c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1000>;
+                       status = "disabled";
+
+                       hsi2c_0: i2c@10d10000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d10000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c0_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_usi0: serial@10d10000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d10000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart0_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_0: spi@10d10000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d10000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_1>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_1>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 651 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi0_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi9: usi@10d200c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d200c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1004>;
+                       status = "disabled";
+
+                       hsi2c_9: i2c@10d20000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d20000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c9_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_9: serial@10d20000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d20000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart9_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_9: spi@10d20000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d20000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_2>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_2>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 652 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi9_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi10: usi@10d300c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d300c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1008>;
+                       status = "disabled";
+
+                       hsi2c_10: i2c@10d30000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d30000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c10_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_10: serial@10d30000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d30000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart10_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_10: spi@10d30000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d30000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_3>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_3>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 653 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi10_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi11: usi@10d400c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d400c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x100c>;
+                       status = "disabled";
+
+                       hsi2c_11: i2c@10d40000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d40000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c11_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_11: serial@10d40000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d40000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart11_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_11: spi@10d40000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d40000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_4>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_4>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 654 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi11_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
                usi12: usi@10d500c0 {
-                       compatible = "google,gs101-usi",
-                                    "samsung,exynos850-usi";
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
                        reg = <0x10d500c0 0x20>;
                        ranges;
                        #address-cells = <1>;
                                interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
-                               pinctrl-0 = <&hsi2c12_bus>;
-                               pinctrl-names = "default";
                                clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>,
                                         <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>;
                                clock-names = "hsi2c", "hsi2c_pclk";
+                               pinctrl-0 = <&hsi2c12_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_12: serial@10d50000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d50000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart12_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_12: spi@10d50000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d50000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_5>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_5>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 655 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi12_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               usi13: usi@10d600c0 {
+                       compatible = "google,gs101-usi", "samsung,exynos850-usi";
+                       reg = <0x10d600c0 0x20>;
+                       ranges;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>,
+                                <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>;
+                       clock-names = "pclk", "ipclk";
+                       samsung,sysreg = <&sysreg_peric1 0x1014>;
+                       status = "disabled";
+
+                       hsi2c_13: i2c@10d60000 {
+                               compatible = "google,gs101-hsi2c",
+                                            "samsung,exynosautov9-hsi2c";
+                               reg = <0x10d60000 0xc0>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>;
+                               clock-names = "hsi2c", "hsi2c_pclk";
+                               interrupts = <GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&hsi2c13_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+
+                       serial_13: serial@10d60000 {
+                               compatible = "google,gs101-uart";
+                               reg = <0x10d60000 0xc0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>;
+                               clock-names = "uart", "clk_uart_baud0";
+                               interrupts = <GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&uart13_bus_single>;
+                               pinctrl-names = "default";
+                               samsung,uart-fifosize = <64>;
+                               status = "disabled";
+                       };
+
+                       spi_13: spi@10d60000 {
+                               compatible = "google,gs101-spi";
+                               reg = <0x10d60000 0x30>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               clocks = <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_PCLK_6>,
+                                        <&cmu_peric1 CLK_GOUT_PERIC1_PERIC1_TOP0_IPCLK_6>;
+                               clock-names = "spi", "spi_busclk0";
+                               interrupts = <GIC_SPI 656 IRQ_TYPE_LEVEL_HIGH 0>;
+                               pinctrl-0 = <&spi13_bus>;
+                               pinctrl-names = "default";
+                               status = "disabled";
+                       };
+               };
+
+               cmu_hsi0: clock-controller@11000000 {
+                       compatible = "google,gs101-cmu-hsi0";
+                       reg = <0x11000000 0x4000>;
+                       #clock-cells = <1>;
+
+                       clocks = <&ext_24_5m>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_BUS>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_DPGTC>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_USB31DRD>,
+                                <&cmu_top CLK_DOUT_CMU_HSI0_USBDPDBG>;
+                       clock-names = "oscclk", "bus", "dpgtc", "usb31drd",
+                                     "usbdpdbg";
+               };
+
+               usbdrd31_phy: phy@11100000 {
+                       compatible = "google,gs101-usb31drd-phy";
+                       reg = <0x11100000 0x0100>,
+                             <0x110f0000 0x0800>,
+                             <0x110e0000 0x2800>;
+                       reg-names = "phy", "pcs", "pma";
+                       clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_ACLK_PHYCTRL>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB20_PHY_REFCLK_26>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_CTRL_ACLK>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_CTRL_PCLK>,
+                                <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_SCL_APB_PCLK>;
+                       clock-names = "phy", "ref", "ctrl_aclk", "ctrl_pclk", "scl_pclk";
+                       samsung,pmu-syscon = <&pmu_system_controller>;
+                       #phy-cells = <1>;
+                       status = "disabled";
+               };
+
+               usbdrd31: usb@11110000 {
+                       compatible = "google,gs101-dwusb3";
+                       clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY>,
+                               <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_SUSPEND_CLK_26>,
+                               <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_LINK_ACLK>,
+                               <&cmu_hsi0 CLK_GOUT_HSI0_UASC_HSI0_LINK_PCLK>;
+                       clock-names = "bus_early", "susp_clk", "link_aclk", "link_pclk";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x0 0x11110000 0x10000>;
+                       status = "disabled";
+
+                       usbdrd31_dwc3: usb@0 {
+                               compatible = "snps,dwc3";
+                               clocks = <&cmu_hsi0 CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_REF_CLK_40>;
+                               clock-names = "ref";
+                               reg = <0x0 0x10000>;
+                               interrupts = <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH 0>;
+                               phys = <&usbdrd31_phy 0>, <&usbdrd31_phy 1>;
+                               phy-names = "usb2-phy", "usb3-phy";
                                status = "disabled";
                        };
                };
                pinctrl_hsi1: pinctrl@11840000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x11840000 0x00001000>;
+                       /* TODO: update once support for this CMU exists */
+                       clocks = <0>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               cmu_hsi2: clock-controller@14400000 {
+                       compatible = "google,gs101-cmu-hsi2";
+                       reg = <0x14400000 0x4000>;
+                       #clock-cells = <1>;
+                       clocks = <&ext_24_5m>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_BUS>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_PCIE>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_UFS_EMBD>,
+                                <&cmu_top CLK_DOUT_CMU_HSI2_MMC_CARD>;
+                       clock-names = "oscclk", "bus", "pcie", "ufs", "mmc";
+               };
+
+               sysreg_hsi2: syscon@14420000 {
+                       compatible = "google,gs101-hsi2-sysreg", "syscon";
+                       reg = <0x14420000 0x10000>;
+                       clocks = <&cmu_hsi2 CLK_GOUT_HSI2_SYSREG_HSI2_PCLK>;
+               };
+
                pinctrl_hsi2: pinctrl@14440000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x14440000 0x00001000>;
+                       clocks = <&cmu_hsi2 CLK_GOUT_HSI2_GPIO_HSI2_PCLK>;
+                       clock-names = "pclk";
                        interrupts = <GIC_SPI 503 IRQ_TYPE_LEVEL_HIGH 0>;
                };
 
+               ufs_0: ufs@14700000 {
+                       compatible = "google,gs101-ufs";
+                       reg = <0x14700000 0x200>,
+                             <0x14701100 0x200>,
+                             <0x14780000 0xa000>,
+                             <0x14600000 0x100>;
+                       reg-names = "hci", "vs_hci", "unipro", "ufsp";
+                       interrupts = <GIC_SPI 532 IRQ_TYPE_LEVEL_HIGH 0>;
+                       clocks = <&cmu_hsi2 CLK_GOUT_HSI2_UFS_EMBD_I_ACLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_UFS_EMBD_I_CLK_UNIPRO>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_UFS_EMBD_I_FMP_CLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_ACLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_PCLK>,
+                                <&cmu_hsi2 CLK_GOUT_HSI2_SYSREG_HSI2_PCLK>;
+                       clock-names = "core_clk", "sclk_unipro_main", "fmp",
+                                     "aclk", "pclk", "sysreg";
+                       freq-table-hz = <0 0>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>;
+                       pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
+                       pinctrl-names = "default";
+                       phys = <&ufs_0_phy>;
+                       phy-names = "ufs-phy";
+                       samsung,sysreg = <&sysreg_hsi2 0x710>;
+                       status = "disabled";
+               };
+
+               ufs_0_phy: phy@14704000 {
+                       compatible = "google,gs101-ufs-phy";
+                       reg = <0x14704000 0x3000>;
+                       reg-names = "phy-pma";
+                       samsung,pmu-syscon = <&pmu_system_controller>;
+                       #phy-cells = <0>;
+                       clocks = <&ext_24_5m>;
+                       clock-names = "ref_clk";
+                       status = "disabled";
+               };
+
                cmu_apm: clock-controller@17400000 {
                        compatible = "google,gs101-cmu-apm";
                        reg = <0x17400000 0x8000>;
                pinctrl_gpio_alive: pinctrl@174d0000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x174d0000 0x00001000>;
+                       clocks = <&cmu_apm CLK_GOUT_APM_APBIF_GPIO_ALIVE_PCLK>;
+                       clock-names = "pclk";
 
                        wakeup-interrupt-controller {
                                compatible = "google,gs101-wakeup-eint",
                pinctrl_far_alive: pinctrl@174e0000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x174e0000 0x00001000>;
+                       clocks = <&cmu_apm CLK_GOUT_APM_APBIF_GPIO_FAR_ALIVE_PCLK>;
+                       clock-names = "pclk";
 
                        wakeup-interrupt-controller {
                                compatible = "google,gs101-wakeup-eint",
                pinctrl_gsactrl: pinctrl@17940000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x17940000 0x00001000>;
+                       /* TODO: update once support for this CMU exists */
+                       clocks = <0>;
+                       clock-names = "pclk";
                };
 
                pinctrl_gsacore: pinctrl@17a80000 {
                        compatible = "google,gs101-pinctrl";
                        reg = <0x17a80000 0x00001000>;
+                       /* TODO: update once support for this CMU exists */
+                       clocks = <0>;
+                       clock-names = "pclk";
                };
 
                cmu_top: clock-controller@1e080000 {
index 045250d..bd443c2 100644 (file)
@@ -9,6 +9,7 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-kbox-a-230-ls.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var1.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var2.dtb
+dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var3.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var3-ads2.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-kontron-sl28-var4.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-qds.dtb
@@ -98,6 +99,10 @@ dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-tqmlx2160a-mblx2160a-14-11-x.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-tqmlx2160a-mblx2160a-14-8-x.dtb
 dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-lx2160a-tqmlx2160a-mblx2160a-14-7-x.dtb
 
+dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-aster.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-eval-v3.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-iris-v2.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8dx-colibri-iris.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8dxl-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8dxp-tqma8xdp-mba8xx.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mm-beacon-kit.dtb
@@ -166,6 +171,7 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-icore-mx8mp-edimm2.2.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-msc-sm2s-ep1.dtb
+dtb-$(CONFIG_ARCH_MXC) += imx8mp-navqp.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-phyboard-pollux-rdk.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revb-hdmi.dtb
 dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revb-lt6.dtb
@@ -259,4 +265,5 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw74xx-rpidsi.dtb
 
 dtb-$(CONFIG_ARCH_S32) += s32g274a-evb.dtb
 dtb-$(CONFIG_ARCH_S32) += s32g274a-rdb2.dtb
+dtb-$(CONFIG_ARCH_S32) += s32g399a-rdb3.dtb
 dtb-$(CONFIG_ARCH_S32) += s32v234-evb.dtb
index fe9093b..a0f7bbd 100644 (file)
@@ -81,7 +81,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index ed4e69e..195bdba 100644 (file)
@@ -10,7 +10,7 @@
 /dts-v1/;
 
 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
-#include "fsl-ls1028a-kontron-sl28.dts"
+#include "fsl-ls1028a-kontron-sl28-var3.dts"
 
 / {
        model = "Kontron SMARC-sAL28 (Single PHY) on SMARC Eval 2.0 carrier";
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3.dts b/arch/arm64/boot/dts/freescale/fsl-ls1028a-kontron-sl28-var3.dts
new file mode 100644 (file)
index 0000000..08851ca
--- /dev/null
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Device Tree file for the Kontron SMARC-sAL28 board.
+ *
+ * This is for the network variant 3 which has one ethernet ports.
+ *
+ * Copyright (C) 2024 Michael Walle <michael@walle.cc>
+ *
+ */
+
+/dts-v1/;
+
+#include "fsl-ls1028a-kontron-sl28.dts"
+
+/ {
+       model = "Kontron SMARC-sAL28 (Single PHY)";
+       compatible = "kontron,sl28-var3", "kontron,sl28", "fsl,ls1028a";
+};
index ae534c2..70b8731 100644 (file)
                                  0xc2000000 0x1 0xf8230000  0x1 0xf8230000  0x0 0x020000
                                  /* BAR4 (PF5) - non-prefetchable memory */
                                  0x82000000 0x1 0xfc000000  0x1 0xfc000000  0x0 0x400000>;
+                       #interrupt-cells = <1>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0000 0 0 1 &gic 0 0 GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
+                                       <0000 0 0 2 &gic 0 0 GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
 
                        enetc_port0: ethernet@0,0 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000000 0 0 0 0>;
                                status = "disabled";
                        };
 
                        enetc_port1: ethernet@0,1 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000100 0 0 0 0>;
                                status = "disabled";
                        };
 
                        enetc_port2: ethernet@0,2 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000200 0 0 0 0>;
                                phy-mode = "internal";
                                status = "disabled";
                        };
 
                        enetc_mdio_pf3: mdio@0,3 {
-                               compatible = "fsl,enetc-mdio";
+                               compatible = "pci1957,ee01", "fsl,enetc-mdio";
                                reg = <0x000300 0 0 0 0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                        };
 
                        ethernet@0,4 {
-                               compatible = "fsl,enetc-ptp";
+                               compatible = "pci1957,ee02", "fsl,enetc-ptp";
                                reg = <0x000400 0 0 0 0>;
                                clocks = <&clockgen QORIQ_CLK_HWACCEL 3>;
                                little-endian;
                        mscc_felix: ethernet-switch@0,5 {
                                reg = <0x000500 0 0 0 0>;
                                /* IEP INT_B */
-                               interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <2>;
                                status = "disabled";
 
                                mscc_felix_ports: ports {
                        };
 
                        enetc_port3: ethernet@0,6 {
-                               compatible = "fsl,enetc";
+                               compatible = "pci1957,e100", "fsl,enetc";
                                reg = <0x000600 0 0 0 0>;
                                phy-mode = "internal";
                                status = "disabled";
                        rcec@1f,0 {
                                reg = <0x00f800 0 0 0 0>;
                                /* IEP INT_A */
-                               interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupts = <1>;
                        };
                };
 
index d333b77..8ee6d8c 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <0 106 0x4>,
                             <0 107 0x4>,
                             <0 95 0x4>,
index 1aa38ed..8352197 100644 (file)
 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
 #include "fsl-ls208xa.dtsi"
 
+/ {
+       pmu {
+               compatible = "arm,cortex-a57-pmu";
+               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+       };
+};
+
 &cpu {
        cpu0: cpu@0 {
                device_type = "cpu";
index 8581ea5..245bbd6 100644 (file)
 #include <dt-bindings/clock/fsl,qoriq-clockgen.h>
 #include "fsl-ls208xa.dtsi"
 
+/ {
+       pmu {
+               compatible = "arm,cortex-a72-pmu";
+               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
+       };
+};
+
 &cpu {
        cpu0: cpu@0 {
                device_type = "cpu";
index 0b72928..ccba0a1 100644 (file)
                             <1 10 4>; /* Hypervisor PPI, active-low */
        };
 
-       pmu {
-               compatible = "arm,armv8-pmuv3";
-               interrupts = <1 7 0x8>; /* PMU PPI, Level low type */
-       };
-
        psci {
                compatible = "arm,psci-0.2";
                method = "smc";
index e665c62..9605559 100644 (file)
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
-                       scl-gpios = <&gpio2 15 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c0_scl>;
+                       pinctrl-1 = <&i2c0_scl_gpio>;
+                       scl-gpios = <&gpio0 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c1_scl>;
+                       pinctrl-1 = <&i2c1_scl_gpio>;
+                       scl-gpios = <&gpio0 31 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c2_scl>;
+                       pinctrl-1 = <&i2c2_scl_gpio>;
+                       scl-gpios = <&gpio0 29 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c3_scl>;
+                       pinctrl-1 = <&i2c3_scl_gpio>;
+                       scl-gpios = <&gpio0 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
-                       scl-gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c4_scl>;
+                       pinctrl-1 = <&i2c4_scl_gpio>;
+                       scl-gpios = <&gpio0 25 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c5_scl>;
+                       pinctrl-1 = <&i2c5_scl_gpio>;
+                       scl-gpios = <&gpio0 23 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c6_scl>;
+                       pinctrl-1 = <&i2c6_scl_gpio>;
+                       scl-gpios = <&gpio1 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        clock-names = "i2c";
                        clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL
                                            QORIQ_CLK_PLL_DIV(16)>;
+                       pinctrl-names = "default", "gpio";
+                       pinctrl-0 = <&i2c7_scl>;
+                       pinctrl-1 = <&i2c7_scl_gpio>;
+                       scl-gpios = <&gpio1 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
                        status = "disabled";
                };
 
                        };
                };
 
+               pinmux_i2crv: pinmux@70010012c {
+                       compatible = "pinctrl-single";
+                       reg = <0x00000007 0x0010012c 0x0 0xc>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       pinctrl-single,bit-per-mux;
+                       pinctrl-single,register-width = <32>;
+                       pinctrl-single,function-mask = <0x7>;
+
+                       i2c1_scl: i2c1-scl-pins {
+                               pinctrl-single,bits = <0x0 0 0x7>;
+                       };
+
+                       i2c1_scl_gpio: i2c1-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 0x1 0x7>;
+                       };
+
+                       i2c2_scl: i2c2-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 3)>;
+                       };
+
+                       i2c2_scl_gpio: i2c2-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 3) (0x7 << 3)>;
+                       };
+
+                       i2c3_scl: i2c3-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 6)>;
+                       };
+
+                       i2c3_scl_gpio: i2c3-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 6) (0x7 << 6)>;
+                       };
+
+                       i2c4_scl: i2c4-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 9)>;
+                       };
+
+                       i2c4_scl_gpio: i2c4-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 9) (0x7 << 9)>;
+                       };
+
+                       i2c5_scl: i2c5-scl-pins {
+                               pinctrl-single,bits = <0x0 0 (0x7 << 12)>;
+                       };
+
+                       i2c5_scl_gpio: i2c5-scl-gpio-pins {
+                               pinctrl-single,bits = <0x0 (0x1 << 12) (0x7 << 12)>;
+                       };
+
+                       i2c6_scl: i2c6-scl-pins {
+                               pinctrl-single,bits = <0x4 0x2 0x7>;
+                       };
+
+                       i2c6_scl_gpio: i2c6-scl-gpio-pins {
+                               pinctrl-single,bits = <0x4 0x1 0x7>;
+                       };
+
+                       i2c7_scl: i2c7-scl-pins {
+                               pinctrl-single,bits = <0x4 0x2 0x7>;
+                       };
+
+                       i2c7_scl_gpio: i2c7-scl-gpio-pins {
+                               pinctrl-single,bits = <0x4 0x1 0x7>;
+                       };
+
+                       i2c0_scl: i2c0-scl-pins {
+                               pinctrl-single,bits = <0x8 0 (0x7 << 10)>;
+                       };
+
+                       i2c0_scl_gpio: i2c0-scl-gpio-pins {
+                               pinctrl-single,bits = <0x8 (0x1 << 10) (0x7 << 10)>;
+                       };
+               };
+
                fsl_mc: fsl-mc@80c000000 {
                        compatible = "fsl,qoriq-mc";
                        reg = <0x00000008 0x0c000000 0 0x40>,
index 9f88583..eafef87 100644 (file)
@@ -25,6 +25,7 @@
                i2c7 = &mpcie1_i2c;
                i2c8 = &mpcie0_i2c;
                i2c9 = &pcieclk_i2c;
+               i2c10 = &i2c5;
                mmc0 = &esdhc0;
                mmc1 = &esdhc1;
                serial0 = &uart0;
index 0580ea3..e914291 100644 (file)
                reg = <0x54>;
        };
 };
+
+&i2c5 {
+       status = "okay";
+
+       rtc@6f {
+               compatible = "microchip,mcp7940x";
+               reg = <0x6f>;
+       };
+};
index 07afeb7..897cbb7 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <dt-bindings/clock/imx8-clock.h>
 #include <dt-bindings/clock/imx8-lpcg.h>
+#include <dt-bindings/dma/fsl-edma.h>
 #include <dt-bindings/firmware/imx/rsrc.h>
 
 audio_ipg_clk: clock-audio-ipg {
@@ -119,13 +120,96 @@ audio_subsys: bus@59000000 {
        #size-cells = <1>;
        ranges = <0x59000000 0x0 0x59000000 0x1000000>;
 
+       asrc0: asrc@59000000 {
+               compatible = "fsl,imx8qm-asrc";
+               reg = <0x59000000 0x10000>;
+               interrupts = <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&asrc0_lpcg IMX_LPCG_CLK_0>,
+                        <&asrc0_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_pll_div0_lpcg IMX_LPCG_CLK_4>,
+                        <&aud_pll_div1_lpcg IMX_LPCG_CLK_4>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "mem", "ipg",
+                             "asrck_0", "asrck_1", "asrck_2", "asrck_3",
+                             "asrck_4", "asrck_5", "asrck_6", "asrck_7",
+                             "asrck_8", "asrck_9", "asrck_a", "asrck_b",
+                             "asrck_c", "asrck_d", "asrck_e", "asrck_f",
+                             "spba";
+               dmas = <&edma0 0 0 0>,
+                      <&edma0 1 0 0>,
+                      <&edma0 2 0 0>,
+                      <&edma0 3 0 FSL_EDMA_RX>,
+                      <&edma0 4 0 FSL_EDMA_RX>,
+                      <&edma0 5 0 FSL_EDMA_RX>;
+               /* tx* is output channel of asrc, it is rx channel for eDMA */
+               dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc";
+               fsl,asrc-rate = <8000>;
+               fsl,asrc-width = <16>;
+               fsl,asrc-clk-map = <0>;
+               power-domains = <&pd IMX_SC_R_ASRC_0>;
+               status = "disabled";
+       };
+
+       esai0: esai@59010000 {
+               compatible = "fsl,imx8qm-esai";
+               reg = <0x59010000 0x10000>;
+               interrupts = <GIC_SPI 409 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&esai0_lpcg IMX_LPCG_CLK_4>,
+                        <&esai0_lpcg IMX_LPCG_CLK_0>,
+                        <&esai0_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>;
+               clock-names = "core", "extal", "fsys", "spba";
+               dmas = <&edma0 6 0 FSL_EDMA_RX>, <&edma0 7 0 0>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_ESAI_0>;
+               status = "disabled";
+       };
+
+       spdif0: spdif@59020000 {
+               compatible = "fsl,imx8qm-spdif";
+               reg = <0x59020000 0x10000>;
+               interrupts = <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>, /* rx */
+                            <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>; /* tx */
+               clocks = <&spdif0_lpcg IMX_LPCG_CLK_4>, /* core */
+                        <&clk_dummy>,                  /* rxtx0 */
+                        <&spdif0_lpcg IMX_LPCG_CLK_0>, /* rxtx1 */
+                        <&clk_dummy>,                  /* rxtx2 */
+                        <&clk_dummy>,                  /* rxtx3 */
+                        <&clk_dummy>,                  /* rxtx4 */
+                        <&audio_ipg_clk>,              /* rxtx5 */
+                        <&clk_dummy>,                  /* rxtx6 */
+                        <&clk_dummy>,                  /* rxtx7 */
+                        <&clk_dummy>;                  /* spba */
+               clock-names = "core", "rxtx0", "rxtx1", "rxtx2", "rxtx3", "rxtx4",
+                             "rxtx5", "rxtx6", "rxtx7", "spba";
+               dmas = <&edma0 8 0 (FSL_EDMA_MULTI_FIFO | FSL_EDMA_RX)>,
+                      <&edma0 9 0 FSL_EDMA_MULTI_FIFO>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_SPDIF_0>;
+               status = "disabled";
+       };
+
        sai0: sai@59040000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59040000 0x10000>;
                interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai0_lpcg 1>,
+               clocks = <&sai0_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai0_lpcg 0>,
+                        <&sai0_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -139,9 +223,9 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59050000 0x10000>;
                interrupts = <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai1_lpcg 1>,
+               clocks = <&sai1_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai1_lpcg 0>,
+                        <&sai1_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -155,9 +239,9 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59060000 0x10000>;
                interrupts = <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai2_lpcg 1>,
+               clocks = <&sai2_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai2_lpcg 0>,
+                        <&sai2_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -171,9 +255,9 @@ audio_subsys: bus@59000000 {
                compatible = "fsl,imx8qm-sai";
                reg = <0x59070000 0x10000>;
                interrupts = <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>;
-               clocks = <&sai3_lpcg 1>,
+               clocks = <&sai3_lpcg IMX_LPCG_CLK_4>,
                         <&clk_dummy>,
-                        <&sai3_lpcg 0>,
+                        <&sai3_lpcg IMX_LPCG_CLK_0>,
                         <&clk_dummy>,
                         <&clk_dummy>;
                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
@@ -239,6 +323,40 @@ audio_subsys: bus@59000000 {
                                <&pd IMX_SC_R_DMA_0_CH23>;
        };
 
+       asrc0_lpcg: clock-controller@59400000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59400000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>;
+               clock-output-names = "asrc0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ASRC_0>;
+       };
+
+       esai0_lpcg: clock-controller@59410000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59410000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_ESAI0_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "esai0_lpcg_extal_clk",
+                                    "esai0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ESAI_0>;
+       };
+
+       spdif0_lpcg: clock-controller@59420000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59420000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SPDIF0_TX_CLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "spdif0_lpcg_tx_clk",
+                                    "spdif0_lpcg_gclkw";
+               power-domains = <&pd IMX_SC_R_SPDIF_0>;
+       };
+
        sai0_lpcg: clock-controller@59440000 {
                compatible = "fsl,imx8qxp-lpcg";
                reg = <0x59440000 0x10000>;
@@ -333,6 +451,101 @@ audio_subsys: bus@59000000 {
                status = "disabled";
        };
 
+       asrc1: asrc@59800000 {
+               compatible = "fsl,imx8qm-asrc";
+               reg = <0x59800000 0x10000>;
+               interrupts = <GIC_SPI 380 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&asrc1_lpcg IMX_LPCG_CLK_4>,
+                        <&asrc1_lpcg IMX_LPCG_CLK_4>,
+                        <&aud_pll_div0_lpcg IMX_LPCG_CLK_0>,
+                        <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK0_SEL>,
+                        <&acm IMX_ADMA_ACM_AUD_CLK1_SEL>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "mem", "ipg",
+                             "asrck_0", "asrck_1", "asrck_2", "asrck_3",
+                             "asrck_4", "asrck_5", "asrck_6", "asrck_7",
+                             "asrck_8", "asrck_9", "asrck_a", "asrck_b",
+                             "asrck_c", "asrck_d", "asrck_e", "asrck_f",
+                             "spba";
+               dmas = <&edma1 0 0 0>,
+                      <&edma1 1 0 0>,
+                      <&edma1 2 0 0>,
+                      <&edma1 3 0 FSL_EDMA_RX>,
+                      <&edma1 4 0 FSL_EDMA_RX>,
+                      <&edma1 5 0 FSL_EDMA_RX>;
+               /* tx* is output channel of asrc, it is rx channel for eDMA */
+               dma-names = "rxa", "rxb", "rxc", "txa", "txb", "txc";
+               fsl,asrc-rate = <8000>;
+               fsl,asrc-width = <16>;
+               fsl,asrc-clk-map = <1>;
+               power-domains = <&pd IMX_SC_R_ASRC_1>;
+               status = "disabled";
+       };
+
+       sai4: sai@59820000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59820000 0x10000>;
+               interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai4_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&sai4_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dmas = <&edma1 8 0 FSL_EDMA_RX>, <&edma1 9 0 0>;
+               dma-names = "rx", "tx";
+               power-domains = <&pd IMX_SC_R_SAI_4>;
+               status = "disabled";
+       };
+
+       sai5: sai@59830000 {
+               compatible = "fsl,imx8qm-sai";
+               reg = <0x59830000 0x10000>;
+               interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&sai5_lpcg IMX_LPCG_CLK_4>,
+                        <&clk_dummy>,
+                        <&sai5_lpcg IMX_LPCG_CLK_0>,
+                        <&clk_dummy>,
+                        <&clk_dummy>;
+               clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
+               dmas = <&edma1 10 0 0>;
+               dma-names = "tx";
+               power-domains = <&pd IMX_SC_R_SAI_5>;
+               status = "disabled";
+       };
+
+       amix: amix@59840000 {
+               compatible = "fsl,imx8qm-audmix";
+               reg = <0x59840000 0x10000>;
+               clocks = <&amix_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_AMIX>;
+               dais = <&sai4>, <&sai5>;
+               status = "disabled";
+       };
+
+       mqs: mqs@59850000 {
+               compatible = "fsl,imx8qm-mqs";
+               reg = <0x59850000 0x10000>;
+               clocks = <&mqs0_lpcg IMX_LPCG_CLK_4>, <&mqs0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "mclk", "core";
+               power-domains = <&pd IMX_SC_R_MQS_0>;
+               status = "disabled";
+       };
+
        edma1: dma-controller@599f0000 {
                compatible = "fsl,imx8qm-edma";
                reg = <0x599f0000 0xc0000>;
@@ -481,4 +694,60 @@ audio_subsys: bus@59000000 {
                              "sai3_rx_bclk",
                              "sai4_rx_bclk";
        };
+
+       asrc1_lpcg: clock-controller@59c00000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c00000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_4>;
+               clock-output-names = "asrc1_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_ASRC_1>;
+       };
+
+       sai4_lpcg: clock-controller@59c20000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c20000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "sai4_lpcg_mclk",
+                                    "sai4_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_4>;
+       };
+
+       sai5_lpcg: clock-controller@59c30000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c30000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "sai5_lpcg_mclk",
+                                    "sai5_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_SAI_5>;
+       };
+
+       amix_lpcg: clock-controller@59c40000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c40000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>;
+               clock-output-names = "amix_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_AMIX>;
+       };
+
+       mqs0_lpcg: clock-controller@59c50000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x59c50000 0x10000>;
+               #clock-cells = <1>;
+               clocks = <&acm IMX_ADMA_ACM_MQS_TX_CLK_SEL>,
+                        <&audio_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "mqs0_lpcg_mclk",
+                                    "mqs0_lpcg_ipg_clk";
+               power-domains = <&pd IMX_SC_R_MQS_0>;
+       };
 };
diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi
new file mode 100644 (file)
index 0000000..92752c0
--- /dev/null
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2024 NXP
+ *     Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+
+cm40_ipg_clk: clock-cm40-ipg {
+       compatible = "fixed-clock";
+       #clock-cells = <0>;
+       clock-frequency = <132000000>;
+       clock-output-names = "cm40_ipg_clk";
+};
+
+cm40_subsys: bus@34000000 {
+       compatible = "simple-bus";
+       #address-cells = <1>;
+       #size-cells = <1>;
+       ranges = <0x34000000 0x0 0x34000000 0x4000000>;
+       interrupt-parent = <&cm40_intmux>;
+
+       cm40_lpuart: serial@37220000 {
+               compatible = "fsl,imx8qxp-lpuart";
+               reg = <0x37220000 0x1000>;
+               interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cm40_uart_lpcg IMX_LPCG_CLK_1>, <&cm40_uart_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "ipg", "baud";
+               assigned-clocks = <&clk IMX_SC_R_M4_0_UART IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_M4_0_UART>;
+               status = "disabled";
+       };
+
+       cm40_i2c: i2c@37230000 {
+               compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
+               reg = <0x37230000 0x1000>;
+               interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&cm40_i2c_lpcg IMX_LPCG_CLK_0>,
+                        <&cm40_i2c_lpcg IMX_LPCG_CLK_4>;
+               clock-names = "per", "ipg";
+               assigned-clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>;
+               assigned-clock-rates = <24000000>;
+               power-domains = <&pd IMX_SC_R_M4_0_I2C>;
+               status = "disabled";
+       };
+
+       cm40_intmux: intmux@37400000 {
+               compatible = "fsl,imx-intmux";
+               reg = <0x37400000 0x1000>;
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+                            <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               clocks = <&cm40_ipg_clk>;
+               clock-names = "ipg";
+               power-domains = <&pd IMX_SC_R_M4_0_INTMUX>;
+               status = "disabled";
+       };
+
+       cm40_uart_lpcg: clock-controller@37620000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x37620000 0x1000>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_M4_0_UART IMX_SC_PM_CLK_PER>,
+                        <&cm40_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_1>;
+               clock-output-names = "cm40_lpcg_uart_clk",
+                                    "cm40_lpcg_uart_ipg_clk";
+               power-domains = <&pd IMX_SC_R_M4_0_UART>;
+       };
+
+       cm40_i2c_lpcg: clock-controller@37630000 {
+               compatible = "fsl,imx8qxp-lpcg";
+               reg = <0x37630000 0x1000>;
+               #clock-cells = <1>;
+               clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>,
+                        <&cm40_ipg_clk>;
+               clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+               clock-output-names = "cm40_lpcg_i2c_clk",
+                                    "cm40_lpcg_i2c_ipg_clk";
+               power-domains = <&pd IMX_SC_R_M4_0_I2C>;
+       };
+};
index e7783cc..77d2928 100644 (file)
@@ -21,7 +21,6 @@ img_subsys: bus@58000000 {
                interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&img_jpeg_dec_lpcg IMX_LPCG_CLK_0>,
                         <&img_jpeg_dec_lpcg IMX_LPCG_CLK_4>;
-               clock-names = "per", "ipg";
                assigned-clocks = <&img_jpeg_dec_lpcg IMX_LPCG_CLK_0>,
                                  <&img_jpeg_dec_lpcg IMX_LPCG_CLK_4>;
                assigned-clock-rates = <200000000>, <200000000>;
@@ -35,7 +34,6 @@ img_subsys: bus@58000000 {
                interrupts = <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&img_jpeg_enc_lpcg IMX_LPCG_CLK_0>,
                         <&img_jpeg_enc_lpcg IMX_LPCG_CLK_4>;
-               clock-names = "per", "ipg";
                assigned-clocks = <&img_jpeg_enc_lpcg IMX_LPCG_CLK_0>,
                                  <&img_jpeg_enc_lpcg IMX_LPCG_CLK_4>;
                assigned-clock-rates = <200000000>, <200000000>;
diff --git a/arch/arm64/boot/dts/freescale/imx8dx-colibri-aster.dts b/arch/arm64/boot/dts/freescale/imx8dx-colibri-aster.dts
new file mode 100644 (file)
index 0000000..c974f5d
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-aster.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Aster Board";
+       compatible = "toradex,colibri-imx8x-aster",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8dx-colibri-eval-v3.dts b/arch/arm64/boot/dts/freescale/imx8dx-colibri-eval-v3.dts
new file mode 100644 (file)
index 0000000..f2bf154
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-eval-v3.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Colibri Evaluation Board V3";
+       compatible = "toradex,colibri-imx8x-eval-v3",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8dx-colibri-iris-v2.dts b/arch/arm64/boot/dts/freescale/imx8dx-colibri-iris-v2.dts
new file mode 100644 (file)
index 0000000..fd425c7
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-iris-v2.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Colibri Iris V2 Board";
+       compatible = "toradex,colibri-imx8x-iris-v2",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8dx-colibri-iris.dts b/arch/arm64/boot/dts/freescale/imx8dx-colibri-iris.dts
new file mode 100644 (file)
index 0000000..e5e2346
--- /dev/null
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+/dts-v1/;
+
+#include "imx8dx-colibri.dtsi"
+#include "imx8x-colibri-iris.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX on Colibri Iris Board";
+       compatible = "toradex,colibri-imx8x-iris",
+                    "toradex,colibri-imx8x",
+                    "fsl,imx8dx";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8dx-colibri.dtsi b/arch/arm64/boot/dts/freescale/imx8dx-colibri.dtsi
new file mode 100644 (file)
index 0000000..66b0fcc
--- /dev/null
@@ -0,0 +1,11 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2018-2021 Toradex
+ */
+
+#include "imx8dx.dtsi"
+#include "imx8x-colibri.dtsi"
+
+/ {
+       model = "Toradex Colibri iMX8DX Module";
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8dx.dtsi b/arch/arm64/boot/dts/freescale/imx8dx.dtsi
new file mode 100644 (file)
index 0000000..ce76efc
--- /dev/null
@@ -0,0 +1,13 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (C) 2016 Freescale Semiconductor, Inc.
+ * Copyright 2017-2020 NXP
+ */
+
+/dts-v1/;
+
+#include "imx8dxp.dtsi"
+
+&gpu_3d0 {
+       assigned-clock-rates = <372000000>, <372000000>;
+};
index 2123d43..2412ab1 100644 (file)
@@ -16,6 +16,8 @@
                mmc0 = &usdhc1;
                mmc1 = &usdhc2;
                serial0 = &lpuart0;
+               serial1 = &lpuart1;
+               serial6 = &cm40_lpuart;
        };
 
        chosen {
                };
        };
 
+       m2_uart1_sel: regulator-m2uart1sel {
+               compatible = "regulator-fixed";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-name = "m2_uart1_sel";
+               gpio = <&pca6416_1 6 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               regulator-always-on;
+       };
+
        mux3_en: regulator-0 {
                compatible = "regulator-fixed";
                regulator-min-microvolt = <3300000>;
        status = "okay";
 };
 
+&lpuart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpuart1>;
+       status = "okay";
+};
+
 &flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
        status = "okay";
 };
 
+&cm40_intmux {
+       status = "disabled";
+};
+
+&cm40_lpuart {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_cm40_lpuart>;
+       status = "disabled";
+};
+
 &lsio_gpio4 {
        status = "okay";
 };
                >;
        };
 
+       pinctrl_lpuart1: lpuart1grp {
+               fsl,pins = <
+                       IMX8DXL_UART1_TX_ADMA_UART1_TX          0x06000020
+                       IMX8DXL_UART1_RX_ADMA_UART1_RX          0x06000020
+                       IMX8DXL_UART1_RTS_B_ADMA_UART1_RTS_B    0x06000020
+                       IMX8DXL_UART1_CTS_B_ADMA_UART1_CTS_B    0x06000020
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8DXL_EMMC0_CLK_CONN_EMMC0_CLK        0x06000041
index a0674c5..7e54cf2 100644 (file)
@@ -5,6 +5,7 @@
 
 #include <dt-bindings/clock/imx8-clock.h>
 #include <dt-bindings/dma/fsl-edma.h>
+#include <dt-bindings/clock/imx8-lpcg.h>
 #include <dt-bindings/firmware/imx/rsrc.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a35-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
        };
 
        /* sorted in register address */
+       #include "imx8-ss-cm40.dtsi"
        #include "imx8-ss-adma.dtsi"
        #include "imx8-ss-conn.dtsi"
        #include "imx8-ss-ddr.dtsi"
 #include "imx8dxl-ss-conn.dtsi"
 #include "imx8dxl-ss-lsio.dtsi"
 #include "imx8dxl-ss-ddr.dtsi"
+
+&cm40_intmux {
+       interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                    <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+};
index bd5b365..90d1901 100644 (file)
                enable-active-high;
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
        reg_vddext_3v3: regulator-vddext-3v3 {
                compatible = "regulator-fixed";
                regulator-name = "VDDEXT_3V3";
        };
 
        ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec1>;
                reg = <0x50>;
                assigned-clock-rates = <24000000>;
                powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               DOVDD-supply = <&buck5_reg>;
+               AVDD-supply = <&reg_1v8>;
+               DVDD-supply = <&reg_1v5>;
 
                port {
                        ov5640_to_mipi_csi2: endpoint {
index d643381..affbc67 100644 (file)
                interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ptn5150>;
-               status = "okay";
        };
 };
 
index 41c9661..429be2b 100644 (file)
@@ -57,7 +57,7 @@
        status = "okay";
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
index 5e2cbaf..35ae0fa 100644 (file)
        };
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
index 1cff0b8..ce20de2 100644 (file)
@@ -10,7 +10,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&dailink_master>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mm-wm8904";
+               simple-audio-card,name = "verdin-wm8904";
                simple-audio-card,routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
                        sound-dai = <&sai2>;
                };
        };
+
+       reg_usb_hub: regulator-usb-hub {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "HUB_PWR_EN";
+       };
+
+       reg_pcie: regulator-pcie {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "PCIE_1_PWR_EN";
+               startup-delay-us = <100000>;
+       };
 };
 
 /* Verdin SPI_1 */
        status = "okay";
 };
 
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
 
 /* Verdin PCIE_1 */
 &pcie0 {
+       vpcie-supply = <&reg_pcie>;
        status = "okay";
 };
 
        status = "okay";
 };
 
+/* We support turning off sleep moci on Dahlia */
+&reg_force_sleep_moci {
+       status = "disabled";
+};
+
 /* Verdin I2S_1 */
 &sai2 {
        status = "okay";
 
 /* Verdin USB_2 */
 &usbotg2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
        disable-over-current;
        status = "okay";
+
+       usb-hub@1 {
+               compatible = "usb424,2744";
+               reg = <1>;
+               vdd-supply = <&reg_usb_hub>;
+       };
 };
 
 /* Verdin SD_1 */
index 3c4b8ca..1d8d146 100644 (file)
@@ -10,7 +10,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&dailink_master>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mm-nau8822";
+               simple-audio-card,name = "verdin-nau8822";
                simple-audio-card,routing =
                        "Headphones", "LHP",
                        "Headphones", "RHP",
        status = "okay";
 };
 
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &gpio_expander_21 {
        status = "okay";
 };
index 1e28c78..763f069 100644 (file)
        pinctrl-0 = <&pinctrl_gpios_ext_yavia>;
 };
 
+&gpio5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &hwmon_temp {
        status = "okay";
 };
index 6f08115..4768b05 100644 (file)
                startup-delay-us = <200000>;
        };
 
+       /*
+        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
+        * peripherals on the carrier board powered.
+        * If more granularity or power saving is required this can be disabled
+        * in the carrier board device tree files.
+        */
+       reg_force_sleep_moci: regulator-force-sleep-moci {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio5 1 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "CTRL_SLEEP_MOCI#";
+       };
+
        reg_usb_otg1_vbus: regulator-usb-otg1 {
                compatible = "regulator-fixed";
                enable-active-high;
                          "SODIMM_212",
                          "SODIMM_151",
                          "SODIMM_153";
-
-       ctrl-sleep-moci-hog {
-               gpio-hog;
-               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
-               gpios = <1 GPIO_ACTIVE_HIGH>;
-               line-name = "CTRL_SLEEP_MOCI#";
-               output-high;
-               pinctrl-names = "default";
-               pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
-       };
 };
 
 /* On-module I2C */
index 8a1b42b..9535ded 100644 (file)
                                                        remote-endpoint = <&lcdif_to_dsim>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
                                reg = <0x32e40000 0x200>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
-                               clock-names = "usb1_ctrl_root_clk";
                                assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
                                assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
                                phys = <&usbphynop1>;
                                reg = <0x32e50000 0x200>;
                                interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MM_CLK_USB1_CTRL_ROOT>;
-                               clock-names = "usb1_ctrl_root_clk";
                                assigned-clocks = <&clk IMX8MM_CLK_USB_BUS>;
                                assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>;
                                phys = <&usbphynop2>;
index 000e2c0..d25032e 100644 (file)
                };
        };
 };
+
+&i2c2 {
+       hdmi@3d {
+               avdd-supply = <&buck5>;
+               dvdd-supply = <&buck5>;
+               pvdd-supply = <&buck5>;
+               a2vdd-supply = <&buck5>;
+               v1p2-supply = <&buck5>;
+       };
+};
+
+&i2c3 {
+       camera@3c {
+               DOVDD-supply = <&buck5>;
+       };
+};
index cc2ff59..6d85a0b 100644 (file)
                };
        };
 };
+
+&i2c2 {
+       hdmi@3d {
+               avdd-supply = <&buck5_reg>;
+               dvdd-supply = <&buck5_reg>;
+               pvdd-supply = <&buck5_reg>;
+               a2vdd-supply = <&buck5_reg>;
+               v1p2-supply = <&buck5_reg>;
+       };
+};
+
+&i2c3 {
+       camera@3c {
+               DOVDD-supply = <&buck5_reg>;
+       };
+};
index 0b71f50..4133021 100644 (file)
                };
        };
 };
+
+&i2c2 {
+       hdmi@3d {
+               avdd-supply = <&buck5>;
+               dvdd-supply = <&buck5>;
+               pvdd-supply = <&buck5>;
+               a2vdd-supply = <&buck5>;
+               v1p2-supply = <&buck5>;
+       };
+};
+
+&i2c3 {
+       camera@3c {
+               DOVDD-supply = <&buck5>;
+       };
+};
index 269e70f..9e0259d 100644 (file)
@@ -30,7 +30,7 @@
 
                port {
                        hdmi_connector_in: endpoint {
-                               remote-endpoint = <&adv7533_out>;
+                               remote-endpoint = <&adv7535_out>;
                        };
                };
        };
                enable-active-high;
        };
 
+       reg_1v5: regulator-1v5 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V5";
+               regulator-min-microvolt = <1500000>;
+               regulator-max-microvolt = <1500000>;
+       };
+
+       reg_1v8: regulator-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDD_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       reg_vddext_3v3: regulator-vddext-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDEXT_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
        ir-receiver {
                compatible = "gpio-ir-receiver";
                gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 
        hdmi@3d {
                compatible = "adi,adv7535";
-               reg = <0x3d>, <0x3c>, <0x3e>, <0x3f>;
-               reg-names = "main", "cec", "edid", "packet";
+               reg = <0x3d>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <9 IRQ_TYPE_EDGE_FALLING>;
                adi,dsi-lanes = <4>;
-
-               adi,input-depth = <8>;
-               adi,input-colorspace = "rgb";
-               adi,input-clock = "1x";
-               adi,input-style = <1>;
-               adi,input-justification = "evenly";
+               v3p3-supply = <&reg_vddext_3v3>;
 
                ports {
                        #address-cells = <1>;
                        port@0 {
                                reg = <0>;
 
-                               adv7533_in: endpoint {
+                               adv7535_in: endpoint {
                                        remote-endpoint = <&dsi_out>;
                                };
                        };
                        port@1 {
                                reg = <1>;
 
-                               adv7533_out: endpoint {
+                               adv7535_out: endpoint {
                                        remote-endpoint = <&hdmi_connector_in>;
                                };
                        };
        };
 
        ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec1>;
                reg = <0x50>;
                assigned-clock-rates = <24000000>;
                powerdown-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
                reset-gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+               AVDD-supply = <&reg_1v8>;
+               DVDD-supply = <&reg_1v5>;
 
                port {
                        ov5640_to_mipi_csi2: endpoint {
                        reg = <1>;
 
                        dsi_out: endpoint {
-                               remote-endpoint = <&adv7533_in>;
+                               remote-endpoint = <&adv7535_in>;
                                data-lanes = <1 2 3 4>;
                        };
                };
index a6b94d1..3434b18 100644 (file)
                interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_ptn5150>;
-               status = "okay";
 
                port {
                        typec1_dr_sw: endpoint {
index 932c8b0..a5f9cfb 100644 (file)
                                                        remote-endpoint = <&lcdif_to_dsim>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
                                reg = <0x32e40000 0x200>;
                                interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX8MN_CLK_USB1_CTRL_ROOT>;
-                               clock-names = "usb1_ctrl_root_clk";
                                assigned-clocks = <&clk IMX8MN_CLK_USB_BUS>;
                                assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>;
                                phys = <&usbphynop1>;
index a080574..e5d3901 100644 (file)
 &i2c3 {
        /* Connected to USB Hub */
        usb-typec@52 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                reg = <0x52>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
index 2c19766..9b8f97a 100644 (file)
 };
 
 &i2c2 {
-       clock-frequency = <100000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
-       status = "okay";
 };
 
 &i2c3 {
index b11d694..d241db3 100644 (file)
        pinctrl-0 = <&pinctrl_eqos>;
        nvmem-cells = <&ethmac1>;
        nvmem-cell-names = "mac-address";
-       phy-supply = <&reg_baseboard_vdd3v3>;
        phy-handle = <&ethphy0>;
        phy-mode = "rgmii-id";
        status = "okay";
index b749e28..ac7ec75 100644 (file)
                                VDDIO-supply = <&reg_vdd_3p3v_awo>;
                        };
 
+                       csi2exp: gpio@24 {
+                               compatible = "nxp,pca9570";
+                               reg = <0x24>;
+                               gpio-controller;
+                               #gpio-cells = <2>;
+                               gpio-line-names =
+                                       "CSI2_#RESET", "CSI2_#PWDN",
+                                       "CSI_#PWDN", "CSI_#RESET";
+                       };
+
                        typec@3d {
                                compatible = "nxp,ptn5150";
                                reg = <0x3d>;
index 9beba8d..8be5b2a 100644 (file)
 
        };
 
+       sound-hdmi {
+               compatible = "fsl,imx-audio-hdmi";
+               model = "audio-hdmi";
+               audio-cpu = <&aud2htx>;
+               hdmi-out;
+       };
+
+       sound-micfil {
+               compatible = "fsl,imx-audio-card";
+               model = "micfil-audio";
+
+               pri-dai-link {
+                       link-name = "micfil hifi";
+                       format = "i2s";
+
+                       cpu {
+                               sound-dai = <&micfil>;
+                       };
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
        cpu-supply = <&reg_arm>;
 };
 
+&aud2htx {
+       status = "okay";
+};
+
 &eqos {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_eqos>;
        status = "okay";
 };
 
+&micfil {
+       #sound-dai-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_pdm>;
+       assigned-clocks = <&clk IMX8MP_CLK_PDM>;
+       assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
+       assigned-clock-rates = <196608000>;
+       status = "okay";
+};
+
 &mipi_dsi {
        samsung,esc-clock-frequency = <10000000>;
        status = "okay";
                >;
        };
 
+       pinctrl_pdm: pdmgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SAI5_RXC__AUDIOMIX_PDM_CLK         0xd6
+                       MX8MP_IOMUXC_SAI5_RXD0__AUDIOMIX_PDM_BIT_STREAM00       0xd6
+                       MX8MP_IOMUXC_SAI5_RXD1__AUDIOMIX_PDM_BIT_STREAM01       0xd6
+                       MX8MP_IOMUXC_SAI5_RXD2__AUDIOMIX_PDM_BIT_STREAM02       0xd6
+                       MX8MP_IOMUXC_SAI5_RXD3__AUDIOMIX_PDM_BIT_STREAM03       0xd6
+               >;
+       };
+
        pinctrl_pmic: pmicgrp {
                fsl,pins = <
                        MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03     0x000001c0
index 61c2a63..0fd5c3a 100644 (file)
 };
 
 &i2c1 {
-       pinctrl-names = "default";
+       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)>;
        clock-frequency = <400000>;
        status = "okay";
 
 };
 
 &i2c6 {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "gpio";
        pinctrl-0 = <&pinctrl_i2c6>;
+       pinctrl-1 = <&pinctrl_i2c6_gpio>;
+       scl-gpios = <&gpio3 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio3 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
        clock-frequency = <400000>;
        status = "okay";
 
 
        pinctrl_i2c1: i2c1grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA                0x400001e0>;
+       };
+
+       pinctrl_i2c1_gpio: i2c1gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_I2C1_SCL__GPIO5_IO14              0x1e0>,
+                       <MX8MP_IOMUXC_I2C1_SDA__GPIO5_IO15              0x1e0>;
        };
 
        pinctrl_i2c2: i2c2grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C2_SCL__I2C2_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C2_SDA__I2C2_SDA                0x400001e0>;
        };
 
        pinctrl_i2c3: i2c3grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C3_SCL__I2C3_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C3_SDA__I2C3_SDA                0x400001e0>;
        };
 
        pinctrl_i2c4: i2c4grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_I2C4_SCL__I2C4_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_I2C4_SDA__I2C4_SDA                0x400001e0>;
        };
 
        pinctrl_i2c5: i2c5grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL                0x400001c3>,
-                       <MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_SPDIF_TX__I2C5_SCL                0x400001e0>,
+                       <MX8MP_IOMUXC_SPDIF_RX__I2C5_SDA                0x400001e0>;
        };
 
        pinctrl_i2c6: i2c6grp {
                fsl,pins =
-                       <MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL               0x400001c3>,
-                       <MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA                0x400001c3>;
+                       <MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL               0x400001e0>,
+                       <MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA                0x400001e0>;
+       };
+
+       pinctrl_i2c6_gpio: i2c6gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_SAI5_RXFS__GPIO3_IO19             0x1e0>,
+                       <MX8MP_IOMUXC_SAI5_RXC__GPIO3_IO20              0x1e0>;
        };
 
        pinctrl_lcd0_backlight: lcd0-backlightgrp {
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-navqp.dts b/arch/arm64/boot/dts/freescale/imx8mp-navqp.dts
new file mode 100644 (file)
index 0000000..5fd1614
--- /dev/null
@@ -0,0 +1,424 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright 2021 Emcraft Systems
+ * Copyright 2024 Gilles Talis <gilles.talis@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "imx8mp.dtsi"
+
+/ {
+       model = "Emcraft Systems i.MX8MPlus NavQ+ Kit";
+       compatible = "emcraft,imx8mp-navqp", "fsl,imx8mp";
+
+       chosen {
+               stdout-path = &uart2;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_gpio_led>;
+
+               led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+       };
+
+       reg_usdhc2_vmmc: regulator-usdhc2 {
+               compatible = "regulator-fixed";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
+               regulator-name = "VSD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               startup-delay-us = <100>;
+               off-on-delay-us = <12000>;
+       };
+};
+
+&A53_0 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_1 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_2 {
+       cpu-supply = <&buck2>;
+};
+
+&A53_3 {
+       cpu-supply = <&buck2>;
+};
+
+&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 = <0>;
+                       reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <1000>;
+                       reset-deassert-us = <10000>;
+                       qca,disable-smarteee;
+                       qca,disable-hibernation-mode;
+               };
+       };
+};
+
+&i2c1 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c1>;
+       status = "okay";
+
+       pmic@25 {
+               compatible = "nxp,pca9450c";
+               reg = <0x25>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pmic>;
+               interrupt-parent = <&gpio1>;
+               interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
+
+               regulators {
+                       BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck2: BUCK2 {
+                               regulator-name = "BUCK2";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <2187500>;
+                               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 = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK5 {
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <600000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1600000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO2 {
+                               regulator-name = "LDO2";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO3 {
+                               regulator-name = "LDO3";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&i2c2 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c2>;
+       status = "okay";
+};
+
+&i2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c3>;
+       status = "okay";
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_i2c4>;
+       status = "okay";
+
+       rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+       };
+};
+
+&uart2 {
+       /* console */
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart2>;
+       status = "okay";
+};
+
+/* SD Card */
+&usdhc2 {
+       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
+       vmmc-supply = <&reg_usdhc2_vmmc>;
+       bus-width = <4>;
+       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_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_SAI2_RXC__GPIO4_IO22                               0x110
+               >;
+       };
+
+       pinctrl_gpio_led: gpioledgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_NAND_READY_B__GPIO3_IO16                           0x19
+               >;
+       };
+
+       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_pmic: pmicgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_GPIO1_IO03__GPIO1_IO03                             0x41
+               >;
+       };
+
+       pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19                            0x41
+               >;
+       };
+
+       pinctrl_uart2: uart2grp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                            0x49
+                       MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                            0x49
+               >;
+       };
+
+       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_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       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
+                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT                         0xc1
+               >;
+       };
+
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
+               fsl,pins = <
+                       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
+                       MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT                         0xc1
+               >;
+       };
+
+       pinctrl_usdhc2_gpio: usdhc2gpiogrp {
+               fsl,pins = <
+                       MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12                               0x1c4
+               >;
+       };
+
+       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                           0xc6
+               >;
+       };
+};
index 86d3da3..c51ed7d 100644 (file)
                };
        };
 
+       hdmi-connector {
+               compatible = "hdmi-connector";
+               label = "X44";
+               type = "a";
+
+               port {
+                       hdmi_connector_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
        display: display {
                /*
                 * Display is not fixed, so compatible has to be added from
                          "", "", "", "";
 };
 
+&hdmi_pvi {
+       status = "okay";
+};
+
+&hdmi_tx {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_hdmi>;
+       status = "okay";
+
+       ports {
+               port@1 {
+                       hdmi_tx_out: endpoint {
+                               remote-endpoint = <&hdmi_connector_in>;
+                       };
+               };
+       };
+};
+
+&hdmi_tx_phy {
+       status = "okay";
+};
+
 &i2c2 {
        clock-frequency = <384000>;
        pinctrl-names = "default", "gpio";
        status = "okay";
 };
 
+&lcdif3 {
+       status = "okay";
+};
+
 &pcf85063 {
        /* RTC_EVENT# is connected on MBa8MPxL */
        pinctrl-names = "default";
index e7bf032..2f740d7 100644 (file)
@@ -68,7 +68,7 @@
        status = "okay";
 
        tpm@1 {
-               compatible = "tcg,tpm_tis-spi";
+               compatible = "atmel,attpm20p", "tcg,tpm_tis-spi";
                reg = <0x1>;
                spi-max-frequency = <36000000>;
        };
index f24b147..5ab3ffe 100644 (file)
@@ -8,6 +8,10 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       aliases {
+               ethernet1 = &eth1;
+       };
+
        connector {
                compatible = "gpio-usb-b-connector", "usb-b-connector";
                pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie0>;
        reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>;
        status = "okay";
+
+       pcie@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
+
+               pcie@0,0 {
+                       reg = <0x0000 0 0 0 0>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       pcie@3,0 {
+                               reg = <0x1800 0 0 0 0>;
+                               device_type = "pci";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               eth1: ethernet@0,0 {
+                                       reg = <0x0000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                                       local-mac-address = [00 00 00 00 00 00];
+                               };
+                       };
+               };
+       };
 };
 
 /* GPS */
index f5491a6..dec57fa 100644 (file)
@@ -8,6 +8,10 @@
 #include <dt-bindings/phy/phy-imx8-pcie.h>
 
 / {
+       aliases {
+               ethernet1 = &eth1;
+       };
+
        connector {
                compatible = "gpio-usb-b-connector", "usb-b-connector";
                pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pcie0>;
        reset-gpio = <&gpio4 29 GPIO_ACTIVE_LOW>;
        status = "okay";
+
+       pcie@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               device_type = "pci";
+               #address-cells = <3>;
+               #size-cells = <2>;
+               ranges;
+
+               pcie@0,0 {
+                       reg = <0x0000 0 0 0 0>;
+                       device_type = "pci";
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       pcie@4,0 {
+                               reg = <0x2000 0 0 0 0>;
+                               device_type = "pci";
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+
+                               eth1: ethernet@0,0 {
+                                       reg = <0x0000 0 0 0 0>;
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                                       local-mac-address = [00 00 00 00 00 00];
+                               };
+                       };
+               };
+       };
 };
 
 /* GPS */
index 270a911..edf22ff 100644 (file)
        status = "okay";
 
        ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
                port@0 {
+                       reg = <0>;
+
                        mipi_csi_0_in: endpoint {
                                remote-endpoint = <&imx219_to_mipi_csi2>;
                                data-lanes = <1 2>;
                        };
                };
+
+               port@1 {
+                       reg = <1>;
+
+                       mipi_csi_0_out: endpoint {
+                               remote-endpoint = <&isi_in_0>;
+                       };
+               };
        };
 };
 
index cae586c..a77e9a4 100644 (file)
                                label = "vdd_dram";
                        };
 
+                       channel@9e {
+                               gw,mode = <2>;
+                               reg = <0x9e>;
+                               label = "vdd_1p0";
+                       };
+
                        channel@a2 {
                                gw,mode = <2>;
                                reg = <0xa2>;
index 7e9e4b1..6e6b9c2 100644 (file)
@@ -10,7 +10,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&codec_dai>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mp-wm8904";
+               simple-audio-card,name = "verdin-wm8904";
                simple-audio-card,routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
                        sound-dai = <&sai1>;
                };
        };
+
+       reg_usb_hub: regulator-usb-hub {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "HUB_PWR_EN";
+       };
+
+       reg_pcie: regulator-pcie {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "PCIE_1_PWR_EN";
+               startup-delay-us = <100000>;
+       };
 };
 
 &backlight {
        status = "okay";
 };
 
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 /* Current measurement into module VCC */
 &hwmon {
        status = "okay";
        };
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
+       vpcie-supply = <&reg_pcie>;
        status = "okay";
 };
 
        vin-supply = <&reg_3p3v>;
 };
 
+/* We support turning off sleep moci on Dahlia */
+&reg_force_sleep_moci {
+       status = "disabled";
+};
+
 /* Verdin I2S_1 */
 &sai1 {
        assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
        status = "okay";
 };
 
+&usb_dwc3_1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       usb_hub_3_0: usb-hub@1 {
+               compatible = "usb424,5744";
+               reg = <1>;
+               peer-hub = <&usb_hub_2_0>;
+               vdd-supply = <&reg_usb_hub>;
+       };
+
+       usb_hub_2_0: usb-hub@2 {
+               compatible = "usb424,2744";
+               reg = <2>;
+               peer-hub = <&usb_hub_3_0>;
+               vdd-supply = <&reg_usb_hub>;
+       };
+};
+
 /* Verdin SD_1 */
 &usdhc2 {
        status = "okay";
index a509b2b..42ed44a 100644 (file)
@@ -22,7 +22,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&codec_dai>;
                simple-audio-card,mclk-fs = <256>;
-               simple-audio-card,name = "imx8mp-nau8822";
+               simple-audio-card,name = "verdin-nau8822";
                simple-audio-card,routing =
                        "Headphones", "LHP",
                        "Headphones", "RHP",
        status = "okay";
 };
 
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &gpio_expander_21 {
        status = "okay";
        vcc-supply = <&reg_1p8v>;
        };
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index 8482393..1d15f74 100644 (file)
        status = "okay";
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index db1722f..a7b261f 100644 (file)
        status = "okay";
 };
 
+&gpio4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ctrl_sleep_moci>;
+};
+
 &hwmon_temp {
        status = "okay";
 };
        status = "okay";
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       status = "okay";
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        status = "okay";
index faa17cb..aef4bef 100644 (file)
                vin-supply = <&reg_vdd_3v3>;
        };
 
+       /*
+        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
+        * peripherals on the carrier board powered.
+        * If more granularity or power saving is required this can be disabled
+        * in the carrier board device tree files.
+        */
+       reg_force_sleep_moci: regulator-force-sleep-moci {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "CTRL_SLEEP_MOCI#";
+       };
+
        reg_usb1_vbus: regulator-usb1-vbus {
                compatible = "regulator-fixed";
                enable-active-high;
                          "SODIMM_256",
                          "SODIMM_48",
                          "SODIMM_44";
-
-       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>;
-       };
 };
 
 /* On-module I2C */
        };
 };
 
-/* TODO: Verdin I2C_3_HDMI */
-
 /* Verdin I2C_4_CSI */
 &i2c3 {
        clock-frequency = <400000>;
        };
 };
 
+/* Verdin I2C_3_HDMI */
+&i2c5 {
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_i2c5>;
+       pinctrl-1 = <&pinctrl_i2c5_gpio>;
+       scl-gpios = <&gpio3 26 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+       sda-gpios = <&gpio3 27 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+};
+
 /* Verdin PCIE_1 */
 &pcie {
        pinctrl-names = "default";
        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 */
        };
 
                        <MX8MP_IOMUXC_I2C4_SDA__GPIO5_IO21              0x400001c6>;    /* SODIMM 12 */
        };
 
+       /* Verdin I2C_3_HDMI */
+       pinctrl_i2c5: i2c5grp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_HDMI_DDC_SCL__I2C5_SCL            0x400001c6>,    /* SODIMM 59 */
+                       <MX8MP_IOMUXC_HDMI_DDC_SDA__I2C5_SDA            0x400001c6>;    /* SODIMM 57 */
+       };
+
+       pinctrl_i2c5_gpio: i2c5gpiogrp {
+               fsl,pins =
+                       <MX8MP_IOMUXC_HDMI_DDC_SCL__GPIO3_IO26          0x400001c6>,    /* SODIMM 59 */
+                       <MX8MP_IOMUXC_HDMI_DDC_SDA__GPIO3_IO27          0x400001c6>;    /* SODIMM 57 */
+       };
+
        /* Verdin I2S_2_BCLK (TOUCH_RESET#) */
        pinctrl_i2s_2_bclk_touch_reset: i2s2bclktouchresetgrp {
                fsl,pins =
index 8141926..b92abb5 100644 (file)
                                                         <&clk IMX8MP_CLK_MEDIA_APB_ROOT>;
                                        };
 
+                                       pgc_hdmimix: power-domain@14 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_HDMIMIX>;
+                                               clocks = <&clk IMX8MP_CLK_HDMI_ROOT>,
+                                                        <&clk IMX8MP_CLK_HDMI_APB>;
+                                               assigned-clocks = <&clk IMX8MP_CLK_HDMI_AXI>,
+                                                                 <&clk IMX8MP_CLK_HDMI_APB>;
+                                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_500M>,
+                                                                        <&clk IMX8MP_SYS_PLL1_133M>;
+                                               assigned-clock-rates = <500000000>, <133000000>;
+                                       };
+
+                                       pgc_hdmi_phy: power-domain@15 {
+                                               #power-domain-cells = <0>;
+                                               reg = <IMX8MP_POWER_DOMAIN_HDMI_PHY>;
+                                       };
+
                                        pgc_mipi_phy2: power-domain@16 {
                                                #power-domain-cells = <0>;
                                                reg = <IMX8MP_POWER_DOMAIN_MIPI_PHY2>;
                                        status = "disabled";
                                };
 
+                               aud2htx: aud2htx@30cb0000 {
+                                       compatible = "fsl,imx8mp-aud2htx";
+                                       reg = <0x30cb0000 0x10000>;
+                                       interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
+                                       clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_AUD2HTX_IPG>;
+                                       clock-names = "bus";
+                                       dmas = <&sdma2 26 2 0>;
+                                       dma-names = "tx";
+                                       status = "disabled";
+                               };
                        };
 
                        sdma3: dma-controller@30e00000 {
                                compatible = "fsl,imx8mp-mipi-csi2", "fsl,imx8mm-mipi-csi2";
                                reg = <0x32e40000 0x10000>;
                                interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
-                               clock-frequency = <500000000>;
+                               clock-frequency = <266000000>;
                                clocks = <&clk IMX8MP_CLK_MEDIA_APB_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_CAM1_PIX_ROOT>,
                                         <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF_ROOT>,
                                                  <&clk IMX8MP_CLK_MEDIA_MIPI_PHY1_REF>;
                                assigned-clock-parents = <&clk IMX8MP_SYS_PLL2_1000M>,
                                                         <&clk IMX8MP_CLK_24M>;
-                               assigned-clock-rates = <500000000>;
+                               assigned-clock-rates = <266000000>;
                                power-domains = <&media_blk_ctrl IMX8MP_MEDIABLK_PD_MIPI_CSI2_1>;
                                status = "disabled";
 
                                                        remote-endpoint = <&lcdif1_to_dsim>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
                                #power-domain-cells = <1>;
                                #clock-cells = <0>;
                        };
+
+                       hdmi_blk_ctrl: blk-ctrl@32fc0000 {
+                               compatible = "fsl,imx8mp-hdmi-blk-ctrl", "syscon";
+                               reg = <0x32fc0000 0x1000>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_ROOT>,
+                                        <&clk IMX8MP_CLK_HDMI_REF_266M>,
+                                        <&clk IMX8MP_CLK_HDMI_24M>,
+                                        <&clk IMX8MP_CLK_HDMI_FDCC_TST>;
+                               clock-names = "apb", "axi", "ref_266m", "ref_24m", "fdcc";
+                               power-domains = <&pgc_hdmimix>, <&pgc_hdmimix>,
+                                               <&pgc_hdmimix>, <&pgc_hdmimix>,
+                                               <&pgc_hdmimix>, <&pgc_hdmimix>,
+                                               <&pgc_hdmimix>, <&pgc_hdmi_phy>,
+                                               <&pgc_hdmimix>, <&pgc_hdmimix>;
+                               power-domain-names = "bus", "irqsteer", "lcdif",
+                                                    "pai", "pvi", "trng",
+                                                    "hdmi-tx", "hdmi-tx-phy",
+                                                    "hdcp", "hrv";
+                               #power-domain-cells = <1>;
+                       };
+
+                       irqsteer_hdmi: interrupt-controller@32fc2000 {
+                               compatible = "fsl,imx-irqsteer";
+                               reg = <0x32fc2000 0x1000>;
+                               interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               fsl,channel = <1>;
+                               fsl,num-irqs = <64>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>;
+                               clock-names = "ipg";
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_IRQSTEER>;
+                       };
+
+                       hdmi_pvi: display-bridge@32fc4000 {
+                               compatible = "fsl,imx8mp-hdmi-pvi";
+                               reg = <0x32fc4000 0x1000>;
+                               interrupt-parent = <&irqsteer_hdmi>;
+                               interrupts = <12>;
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_PVI>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+                                               pvi_from_lcdif3: endpoint {
+                                                       remote-endpoint = <&lcdif3_to_pvi>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               pvi_to_hdmi_tx: endpoint {
+                                                       remote-endpoint = <&hdmi_tx_from_pvi>;
+                                               };
+                                       };
+                               };
+                       };
+
+                       lcdif3: display-controller@32fc6000 {
+                               compatible = "fsl,imx8mp-lcdif";
+                               reg = <0x32fc6000 0x1000>;
+                               interrupt-parent = <&irqsteer_hdmi>;
+                               interrupts = <8>;
+                               clocks = <&hdmi_tx_phy>,
+                                        <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_ROOT>;
+                               clock-names = "pix", "axi", "disp_axi";
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_LCDIF>;
+                               status = "disabled";
+
+                               port {
+                                       lcdif3_to_pvi: endpoint {
+                                               remote-endpoint = <&pvi_from_lcdif3>;
+                                       };
+                               };
+                       };
+
+                       hdmi_tx: hdmi@32fd8000 {
+                               compatible = "fsl,imx8mp-hdmi-tx";
+                               reg = <0x32fd8000 0x7eff>;
+                               interrupt-parent = <&irqsteer_hdmi>;
+                               interrupts = <0>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_REF_266M>,
+                                        <&clk IMX8MP_CLK_32K>,
+                                        <&hdmi_tx_phy>;
+                               clock-names = "iahb", "isfr", "cec", "pix";
+                               assigned-clocks = <&clk IMX8MP_CLK_HDMI_REF_266M>;
+                               assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_266M>;
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX>;
+                               reg-io-width = <1>;
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               hdmi_tx_from_pvi: endpoint {
+                                                       remote-endpoint = <&pvi_to_hdmi_tx>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+                                               /* Point endpoint to the HDMI connector */
+                                       };
+                               };
+                       };
+
+                       hdmi_tx_phy: phy@32fdff00 {
+                               compatible = "fsl,imx8mp-hdmi-phy";
+                               reg = <0x32fdff00 0x100>;
+                               clocks = <&clk IMX8MP_CLK_HDMI_APB>,
+                                        <&clk IMX8MP_CLK_HDMI_24M>;
+                               clock-names = "apb", "ref";
+                               assigned-clocks = <&clk IMX8MP_CLK_HDMI_24M>;
+                               assigned-clock-parents = <&clk IMX8MP_CLK_24M>;
+                               power-domains = <&hdmi_blk_ctrl IMX8MP_HDMIBLK_PD_HDMI_TX_PHY>;
+                               #clock-cells = <0>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
                };
 
                pcie: pcie@33800000 {
index 366693f..e92b5d5 100644 (file)
@@ -42,7 +42,7 @@
        status = "okay";
 
        typec_ptn5100: usb-typec@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                reg = <0x50>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
index 8055a2c..b268ba7 100644 (file)
        };
 
        typec_ptn5100: usb-typec@52 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                reg = <0x52>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
index c6dc3ba..e03186b 100644 (file)
                                                        remote-endpoint = <&lcdif_mipi_dsi>;
                                                };
                                        };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mipi_dsi_out: endpoint {
+                                               };
+                                       };
                                };
                        };
 
index 77ac0ef..5c6b39c 100644 (file)
                gpio = <&lsio_gpio4 19 GPIO_ACTIVE_HIGH>;
                enable-active-high;
        };
+
+       reg_vref_1v8: regulator-adc-vref {
+               compatible = "regulator-fixed";
+               regulator-name = "vref_1v8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+};
+
+&adc0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0>;
+       vref-supply = <&reg_vref_1v8>;
+       status = "okay";
 };
 
 &i2c1 {
        status = "okay";
 };
 
+&lpspi2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpspi2 &pinctrl_lpspi2_cs>;
+       cs-gpios = <&lsio_gpio3 10 GPIO_ACTIVE_LOW>;
+       status = "okay";
+
+       spidev0: spi@0 {
+               reg = <0>;
+               compatible = "rohm,dh2228fv";
+               spi-max-frequency = <30000000>;
+       };
+};
+
+&flexspi0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_flexspi0>;
+       status = "okay";
+
+       flash0: flash@0 {
+               reg = <0>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "jedec,spi-nor";
+               spi-max-frequency = <133000000>;
+               spi-tx-bus-width = <8>;
+               spi-rx-bus-width = <8>;
+       };
+};
+
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_fec1>;
                >;
        };
 
+       pinctrl_adc0: adc0grp {
+               fsl,pins = <
+                       IMX8QM_ADC_IN0_DMA_ADC0_IN0                             0xc0000060
+               >;
+       };
+
        pinctrl_fec1: fec1grp {
                fsl,pins = <
                        IMX8QM_ENET0_MDC_CONN_ENET0_MDC                         0x06000020
                >;
        };
 
+       pinctrl_lpspi2: lpspi2grp {
+               fsl,pins = <
+                       IMX8QM_SPI2_SCK_DMA_SPI2_SCK            0x06000040
+                       IMX8QM_SPI2_SDO_DMA_SPI2_SDO            0x06000040
+                       IMX8QM_SPI2_SDI_DMA_SPI2_SDI            0x06000040
+               >;
+       };
+
+       pinctrl_lpspi2_cs: lpspi2csgrp {
+               fsl,pins = <
+                       IMX8QM_SPI2_CS0_LSIO_GPIO3_IO10         0x21
+               >;
+       };
+
+       pinctrl_flexspi0: flexspi0grp {
+               fsl,pins = <
+                       IMX8QM_QSPI0A_DATA0_LSIO_QSPI0A_DATA0     0x06000021
+                       IMX8QM_QSPI0A_DATA1_LSIO_QSPI0A_DATA1     0x06000021
+                       IMX8QM_QSPI0A_DATA2_LSIO_QSPI0A_DATA2     0x06000021
+                       IMX8QM_QSPI0A_DATA3_LSIO_QSPI0A_DATA3     0x06000021
+                       IMX8QM_QSPI0A_DQS_LSIO_QSPI0A_DQS         0x06000021
+                       IMX8QM_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B     0x06000021
+                       IMX8QM_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B     0x06000021
+                       IMX8QM_QSPI0A_SCLK_LSIO_QSPI0A_SCLK       0x06000021
+                       IMX8QM_QSPI0B_SCLK_LSIO_QSPI0B_SCLK       0x06000021
+                       IMX8QM_QSPI0B_DATA0_LSIO_QSPI0B_DATA0     0x06000021
+                       IMX8QM_QSPI0B_DATA1_LSIO_QSPI0B_DATA1     0x06000021
+                       IMX8QM_QSPI0B_DATA2_LSIO_QSPI0B_DATA2     0x06000021
+                       IMX8QM_QSPI0B_DATA3_LSIO_QSPI0B_DATA3     0x06000021
+                       IMX8QM_QSPI0B_DQS_LSIO_QSPI0B_DQS         0x06000021
+                       IMX8QM_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B     0x06000021
+                       IMX8QM_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B     0x06000021
+               >;
+       };
+
        pinctrl_lpuart0: lpuart0grp {
                fsl,pins = <
                        IMX8QM_UART0_RX_DMA_UART0_RX                            0x06000020
index 8360bb8..cee13e5 100644 (file)
                        };
                };
        };
+
+       sound-wm8960 {
+               compatible = "fsl,imx-audio-wm8960";
+               model = "wm8960-audio";
+               audio-cpu = <&sai1>;
+               audio-codec = <&wm8960>;
+               hp-det-gpio = <&lsio_gpio1 0 GPIO_ACTIVE_HIGH>;
+               audio-routing = "Headphone Jack", "HP_L",
+                               "Headphone Jack", "HP_R",
+                               "Ext Spk", "SPK_LP",
+                               "Ext Spk", "SPK_LN",
+                               "Ext Spk", "SPK_RP",
+                               "Ext Spk", "SPK_RN",
+                               "LINPUT1", "Mic Jack",
+                               "Mic Jack", "MICB";
+       };
 };
 
 &dsp {
        };
 
        ptn5110: tcpc@50 {
-               compatible = "nxp,ptn5110";
+               compatible = "nxp,ptn5110", "tcpci";
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_typec>;
                reg = <0x50>;
 
 };
 
+&cm40_i2c {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <100000>;
+       pinctrl-names = "default", "gpio";
+       pinctrl-0 = <&pinctrl_cm40_i2c>;
+       pinctrl-1 = <&pinctrl_cm40_i2c_gpio>;
+       scl-gpios = <&lsio_gpio1 10 GPIO_ACTIVE_HIGH>;
+       sda-gpios = <&lsio_gpio1 9 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       wm8960: audio-codec@1a {
+               compatible = "wlf,wm8960";
+               reg = <0x1a>;
+               clocks = <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               clock-names = "mclk";
+               assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                                 <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                                 <&mclkout0_lpcg IMX_LPCG_CLK_0>;
+               assigned-clock-rates = <786432000>,
+                                      <49152000>,
+                                      <12288000>,
+                                      <12288000>;
+               wlf,shared-lrclk;
+               wlf,hp-cfg = <2 2 3>;
+               wlf,gpio-cfg = <1 3>;
+       };
+
+       pca6416: gpio@20 {
+               compatible = "ti,tca6416";
+               reg = <0x20>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&cm40_intmux {
+       status = "okay";
+};
+
 &lpuart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_lpuart0>;
        status = "okay";
 };
 
+&sai0 {
+       #sound-dai-cells = <0>;
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai0_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai0>;
+       status = "okay";
+};
+
+&sai1 {
+       assigned-clocks = <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_0 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <786432000>, <49152000>, <12288000>, <49152000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_sai1>;
+       status = "okay";
+};
+
+&sai4 {
+       assigned-clocks = <&acm IMX_ADMA_ACM_SAI4_MCLK_SEL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai4_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
+&sai5 {
+       assigned-clocks = <&acm IMX_ADMA_ACM_SAI5_MCLK_SEL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_PLL>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_SLV_BUS>,
+                         <&clk IMX_SC_R_AUDIO_PLL_1 IMX_SC_PM_CLK_MST_BUS>,
+                         <&sai5_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-parents = <&aud_pll_div1_lpcg IMX_LPCG_CLK_0>;
+       assigned-clock-rates = <0>, <786432000>, <98304000>, <12288000>, <98304000>;
+       fsl,sai-asynchronous;
+       status = "okay";
+};
+
 &thermal_zones {
        pmic-thermal {
                polling-delay-passive = <250>;
 };
 
 &iomuxc {
+
+       pinctrl_cm40_i2c: cm40i2cgrp {
+               fsl,pins = <
+                       IMX8QXP_ADC_IN1_M40_I2C0_SDA                            0x0600004c
+                       IMX8QXP_ADC_IN0_M40_I2C0_SCL                            0x0600004c
+               >;
+       };
+
+       pinctrl_cm40_i2c_gpio: cm40i2cgpio-grp {
+               fsl,pins = <
+                       IMX8QXP_ADC_IN1_LSIO_GPIO1_IO09                         0xc600004c
+                       IMX8QXP_ADC_IN0_LSIO_GPIO1_IO10                         0xc600004c
+               >;
+       };
+
        pinctrl_fec1: fec1grp {
                fsl,pins = <
                        IMX8QXP_ENET0_MDC_CONN_ENET0_MDC                        0x06000020
                >;
        };
 
+       pinctrl_sai0: sai0grp {
+               fsl,pins = <
+                       IMX8QXP_SAI0_TXD_ADMA_SAI0_TXD          0x06000060
+                       IMX8QXP_SAI0_RXD_ADMA_SAI0_RXD          0x06000040
+                       IMX8QXP_SAI0_TXC_ADMA_SAI0_TXC          0x06000040
+                       IMX8QXP_SAI0_TXFS_ADMA_SAI0_TXFS        0x06000040
+               >;
+       };
+
+       pinctrl_sai1: sai1grp {
+               fsl,pins = <
+                       IMX8QXP_SAI1_RXD_ADMA_SAI1_RXD     0x06000040
+                       IMX8QXP_SAI1_RXC_ADMA_SAI1_TXC     0x06000040
+                       IMX8QXP_SAI1_RXFS_ADMA_SAI1_TXFS   0x06000040
+                       IMX8QXP_SPI0_CS1_ADMA_SAI1_TXD     0x06000060
+                       IMX8QXP_SPI2_CS0_LSIO_GPIO1_IO00   0x06000040
+               >;
+       };
+
        pinctrl_usdhc1: usdhc1grp {
                fsl,pins = <
                        IMX8QXP_EMMC0_CLK_CONN_EMMC0_CLK                        0x06000041
index 10e16d8..0313f29 100644 (file)
        /* sorted in register address */
        #include "imx8-ss-img.dtsi"
        #include "imx8-ss-vpu.dtsi"
+       #include "imx8-ss-cm40.dtsi"
        #include "imx8-ss-gpu0.dtsi"
        #include "imx8-ss-adma.dtsi"
        #include "imx8-ss-conn.dtsi"
index 24bb253..e937e5f 100644 (file)
        pinctrl-1 = <&pinctrl_lpi2c7>;
        status = "okay";
 
+       ptn5150_1: typec@1d {
+               compatible = "nxp,ptn5150";
+               reg = <0x1d>;
+               int-gpios = <&gpiof 3 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec1>;
+               status = "disabled";
+       };
+
        pcal6408: gpio@21 {
                compatible = "nxp,pcal9554b";
                reg = <0x21>;
                gpio-controller;
                #gpio-cells = <2>;
        };
+
+       ptn5150_2: typec@3d {
+               compatible = "nxp,ptn5150";
+               reg = <0x3d>;
+               int-gpios = <&gpiof 5 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_typec2>;
+               status = "disabled";
+       };
+};
+
+&usbotg1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb1>;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       over-current-active-low;
+       status = "okay";
+};
+
+&usbphy1 {
+       fsl,tx-d-cal = <110>;
+       status = "okay";
+};
+
+&usbmisc1 {
+       status = "okay";
+};
+
+&usbotg2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_usb2>;
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       over-current-active-low;
+       status = "okay";
+};
+
+&usbphy2 {
+       fsl,tx-d-cal = <110>;
+       status = "okay";
+};
+
+&usbmisc2 {
+       status = "okay";
 };
 
 &usdhc0 {
                >;
        };
 
+       pinctrl_typec1: typec1grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF3__PTF3           0x3
+               >;
+       };
+
+       pinctrl_typec2: typec2grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF5__PTF5           0x3
+               >;
+       };
+
+       pinctrl_usb1: usb1grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTF2__USB0_ID        0x10003
+                       MX8ULP_PAD_PTF4__USB0_OC        0x10003
+               >;
+       };
+
+       pinctrl_usb2: usb2grp {
+               fsl,pins = <
+                       MX8ULP_PAD_PTD23__USB1_ID       0x10003
+                       MX8ULP_PAD_PTF6__USB1_OC        0x10003
+               >;
+       };
+
        pinctrl_usdhc0: usdhc0grp {
                fsl,pins = <
                        MX8ULP_PAD_PTD1__SDHC0_CMD      0x3
index c4a0082..e32d5af 100644 (file)
                                #reset-cells = <1>;
                        };
 
+                       crypto: crypto@292e0000 {
+                               compatible = "fsl,sec-v4.0";
+                               reg = <0x292e0000 0x10000>;
+                               ranges = <0 0x292e0000 0x10000>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               sec_jr0: jr@1000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x1000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               sec_jr1: jr@2000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x2000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               sec_jr2: jr@3000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x3000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+
+                               sec_jr3: jr@4000 {
+                                       compatible = "fsl,sec-v4.0-job-ring";
+                                       reg = <0x4000 0x1000>;
+                                       interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+                               };
+                       };
+
                        tpm5: tpm@29340000 {
                                compatible = "fsl,imx8ulp-tpm", "fsl,imx7ulp-tpm";
                                reg = <0x29340000 0x1000>;
                                status = "disabled";
                        };
 
+                       usbotg1: usb@29900000 {
+                               compatible = "fsl,imx8ulp-usb", "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
+                               reg = <0x29900000 0x200>;
+                               interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB0>;
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USB0>;
+                               phys = <&usbphy1>;
+                               fsl,usbmisc = <&usbmisc1 0>;
+                               ahb-burst-config = <0x0>;
+                               tx-burst-size-dword = <0x8>;
+                               rx-burst-size-dword = <0x8>;
+                               status = "disabled";
+                       };
+
+                       usbmisc1: usbmisc@29900200 {
+                               compatible = "fsl,imx8ulp-usbmisc", "fsl,imx7d-usbmisc",
+                                            "fsl,imx6q-usbmisc";
+                               reg = <0x29900200 0x200>;
+                               #index-cells = <1>;
+                               status = "disabled";
+                       };
+
+                       usbphy1: usb-phy@29910000 {
+                               compatible = "fsl,imx8ulp-usbphy", "fsl,imx7ulp-usbphy";
+                               reg = <0x29910000 0x10000>;
+                               interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB0_PHY>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
+                       usbotg2: usb@29920000 {
+                               compatible = "fsl,imx8ulp-usb", "fsl,imx7ulp-usb", "fsl,imx6ul-usb";
+                               reg = <0x29920000 0x200>;
+                               interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB1>;
+                               power-domains = <&scmi_devpd IMX8ULP_PD_USDHC2_USB1>;
+                               phys = <&usbphy2>;
+                               fsl,usbmisc = <&usbmisc2 0>;
+                               ahb-burst-config = <0x0>;
+                               tx-burst-size-dword = <0x8>;
+                               rx-burst-size-dword = <0x8>;
+                               status = "disabled";
+                       };
+
+                       usbmisc2: usbmisc@29920200 {
+                               compatible = "fsl,imx8ulp-usbmisc", "fsl,imx7d-usbmisc",
+                                            "fsl,imx6q-usbmisc";
+                               reg = <0x29920200 0x200>;
+                               #index-cells = <1>;
+                               status = "disabled";
+                       };
+
+                       usbphy2: usb-phy@29930000 {
+                               compatible = "fsl,imx8ulp-usbphy", "fsl,imx7ulp-usbphy";
+                               reg = <0x29930000 0x10000>;
+                               interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&pcc4 IMX8ULP_CLK_USB1_PHY>;
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+
                        fec: ethernet@29950000 {
                                compatible = "fsl,imx8ulp-fec", "fsl,imx6ul-fec", "fsl,imx6q-fec";
                                reg = <0x29950000 0x10000>;
index 9921ea1..d400d85 100644 (file)
@@ -5,6 +5,7 @@
 
 /dts-v1/;
 
+#include <dt-bindings/usb/pd.h>
 #include "imx93.dtsi"
 
 / {
@@ -38,7 +39,7 @@
                        no-map;
                };
 
-               vdev1vring0: vdev1vring0@a4000000 {
+               vdev1vring0: vdev1vring0@a4010000 {
                        reg = <0 0xa4010000 0 0x8000>;
                        no-map;
                };
@@ -48,8 +49,8 @@
                        no-map;
                };
 
-               rsc_table: rsc-table@2021f000 {
-                       reg = <0 0x2021f000 0 0x1000>;
+               rsc_table: rsc-table@2021e000 {
+                       reg = <0 0x2021e000 0 0x1000>;
                        no-map;
                };
 
        status = "okay";
 };
 
-&eqos {
+&lpi2c3 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
        pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       status = "okay";
+
+       ptn5110: tcpc@50 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x50>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec1_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec1_dr_sw: endpoint {
+                                               remote-endpoint = <&usb1_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       ptn5110_2: tcpc@51 {
+               compatible = "nxp,ptn5110", "tcpci";
+               reg = <0x51>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+
+               typec2_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       power-role = "dual";
+                       data-role = "dual";
+                       try-power-role = "sink";
+                       source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
+                                    PDO_VAR(5000, 20000, 3000)>;
+                       op-sink-microwatt = <15000000>;
+                       self-powered;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       typec2_dr_sw: endpoint {
+                                               remote-endpoint = <&usb2_drd_sw>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
+&eqos {
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_eqos>;
+       pinctrl-1 = <&pinctrl_eqos_sleep>;
        phy-mode = "rgmii-id";
        phy-handle = <&ethphy1>;
        status = "okay";
                ethphy1: ethernet-phy@1 {
                        reg = <1>;
                        eee-broken-1000t;
+                       reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
                };
        };
 };
 
 &fec {
-       pinctrl-names = "default";
+       pinctrl-names = "default", "sleep";
        pinctrl-0 = <&pinctrl_fec>;
+       pinctrl-1 = <&pinctrl_fec_sleep>;
        phy-mode = "rgmii-id";
        phy-handle = <&ethphy2>;
        fsl,magic-packet;
                ethphy2: ethernet-phy@2 {
                        reg = <2>;
                        eee-broken-1000t;
+                       reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>;
+                       reset-assert-us = <10000>;
+                       reset-deassert-us = <80000>;
                };
        };
 };
        status = "okay";
 };
 
+&usbotg1 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb1_drd_sw: endpoint {
+                       remote-endpoint = <&typec1_dr_sw>;
+               };
+       };
+};
+
+&usbotg2 {
+       dr_mode = "otg";
+       hnp-disable;
+       srp-disable;
+       adp-disable;
+       usb-role-switch;
+       disable-over-current;
+       samsung,picophy-pre-emp-curr-control = <3>;
+       samsung,picophy-dc-vol-level-adjust = <7>;
+       status = "okay";
+
+       port {
+               usb2_drd_sw: endpoint {
+                       remote-endpoint = <&typec2_dr_sw>;
+               };
+       };
+};
+
 &usdhc1 {
        pinctrl-names = "default", "state_100mhz", "state_200mhz";
        pinctrl-0 = <&pinctrl_usdhc1>;
-       pinctrl-1 = <&pinctrl_usdhc1>;
-       pinctrl-2 = <&pinctrl_usdhc1>;
+       pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
+       pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
        bus-width = <8>;
        non-removable;
        status = "okay";
 };
 
 &usdhc2 {
-       pinctrl-names = "default", "state_100mhz", "state_200mhz";
+       pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
        pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-       pinctrl-1 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
-       pinctrl-2 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-1 = <&pinctrl_usdhc2_100mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
+       pinctrl-3 = <&pinctrl_usdhc2_sleep>, <&pinctrl_usdhc2_gpio_sleep>;
        cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
        vmmc-supply = <&reg_usdhc2_vmmc>;
        bus-width = <4>;
        status = "okay";
 };
 
+&lpi2c2 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       clock-frequency = <400000>;
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&pinctrl_lpi2c2>;
+       pinctrl-1 = <&pinctrl_lpi2c2>;
+       status = "okay";
+
+       pcal6524: gpio@22 {
+               compatible = "nxp,pcal6524";
+               reg = <0x22>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_pcal6524>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
+       };
+
+       pmic@25 {
+               compatible = "nxp,pca9451a";
+               reg = <0x25>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
+
+               regulators {
+                       buck1: BUCK1 {
+                               regulator-name = "BUCK1";
+                               regulator-min-microvolt = <610000>;
+                               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 = <670000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                               regulator-ramp-delay = <3125>;
+                       };
+
+                       buck4: BUCK4{
+                               regulator-name = "BUCK4";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck5: BUCK5{
+                               regulator-name = "BUCK5";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <3400000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       buck6: BUCK6 {
+                               regulator-name = "BUCK6";
+                               regulator-min-microvolt = <1060000>;
+                               regulator-max-microvolt = <1140000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo1: LDO1 {
+                               regulator-name = "LDO1";
+                               regulator-min-microvolt = <1620000>;
+                               regulator-max-microvolt = <1980000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo4: LDO4 {
+                               regulator-name = "LDO4";
+                               regulator-min-microvolt = <800000>;
+                               regulator-max-microvolt = <840000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+
+                       ldo5: LDO5 {
+                               regulator-name = "LDO5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-boot-on;
+                               regulator-always-on;
+                       };
+               };
+       };
+};
+
+&lpi2c3 {
+       clock-frequency = <400000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_lpi2c3>;
+       status = "okay";
+
+       pcf2131: rtc@53 {
+               compatible = "nxp,pcf2131";
+               reg = <0x53>;
+               interrupt-parent = <&pcal6524>;
+               interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+       };
+};
+
 &iomuxc {
        pinctrl_eqos: eqosgrp {
                fsl,pins = <
                >;
        };
 
+       pinctrl_eqos_sleep: eqossleepgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET1_MDC__GPIO4_IO00                          0x31e
+                       MX93_PAD_ENET1_MDIO__GPIO4_IO01                         0x31e
+                       MX93_PAD_ENET1_RD0__GPIO4_IO10                          0x31e
+                       MX93_PAD_ENET1_RD1__GPIO4_IO11                          0x31e
+                       MX93_PAD_ENET1_RD2__GPIO4_IO12                          0x31e
+                       MX93_PAD_ENET1_RD3__GPIO4_IO13                          0x31e
+                       MX93_PAD_ENET1_RXC__GPIO4_IO09                          0x31e
+                       MX93_PAD_ENET1_RX_CTL__GPIO4_IO08                       0x31e
+                       MX93_PAD_ENET1_TD0__GPIO4_IO05                          0x31e
+                       MX93_PAD_ENET1_TD1__GPIO4_IO04                          0x31e
+                       MX93_PAD_ENET1_TD2__GPIO4_IO03                          0x31e
+                       MX93_PAD_ENET1_TD3__GPIO4_IO02                          0x31e
+                       MX93_PAD_ENET1_TXC__GPIO4_IO07                          0x31e
+                       MX93_PAD_ENET1_TX_CTL__GPIO4_IO06                       0x31e
+               >;
+       };
+
        pinctrl_fec: fecgrp {
                fsl,pins = <
                        MX93_PAD_ENET2_MDC__ENET1_MDC                   0x57e
                >;
        };
 
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x40000b9e
+               >;
+       };
+
+       pinctrl_fec_sleep: fecsleepgrp {
+               fsl,pins = <
+                       MX93_PAD_ENET2_MDC__GPIO4_IO14                  0x51e
+                       MX93_PAD_ENET2_MDIO__GPIO4_IO15                 0x51e
+                       MX93_PAD_ENET2_RD0__GPIO4_IO24                  0x51e
+                       MX93_PAD_ENET2_RD1__GPIO4_IO25                  0x51e
+                       MX93_PAD_ENET2_RD2__GPIO4_IO26                  0x51e
+                       MX93_PAD_ENET2_RD3__GPIO4_IO27                  0x51e
+                       MX93_PAD_ENET2_RXC__GPIO4_IO23                  0x51e
+                       MX93_PAD_ENET2_RX_CTL__GPIO4_IO22               0x51e
+                       MX93_PAD_ENET2_TD0__GPIO4_IO19                  0x51e
+                       MX93_PAD_ENET2_TD1__GPIO4_IO18                  0x51e
+                       MX93_PAD_ENET2_TD2__GPIO4_IO17                  0x51e
+                       MX93_PAD_ENET2_TD3__GPIO4_IO16                  0x51e
+                       MX93_PAD_ENET2_TXC__GPIO4_IO21                  0x51e
+                       MX93_PAD_ENET2_TX_CTL__GPIO4_IO20               0x51e
+               >;
+       };
+
        pinctrl_uart1: uart1grp {
                fsl,pins = <
                        MX93_PAD_UART1_RXD__LPUART1_RX                  0x31e
                >;
        };
 
+       pinctrl_lpi2c2: lpi2c2grp {
+               fsl,pins = <
+                       MX93_PAD_I2C2_SCL__LPI2C2_SCL                   0x40000b9e
+                       MX93_PAD_I2C2_SDA__LPI2C2_SDA                   0x40000b9e
+               >;
+       };
+
+       pinctrl_lpi2c3: lpi2c3grp {
+               fsl,pins = <
+                       MX93_PAD_GPIO_IO28__LPI2C3_SDA                  0x40000b9e
+                       MX93_PAD_GPIO_IO29__LPI2C3_SCL                  0x40000b9e
+               >;
+       };
+
+       pinctrl_pcal6524: pcal6524grp {
+               fsl,pins = <
+                       MX93_PAD_CCM_CLKO2__GPIO3_IO27                  0x31e
+               >;
+       };
+
        /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc1: usdhc1grp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x1582
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x40001382
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x40001382
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x40001382
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x40001382
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x40001382
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x40001382
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x40001382
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x40001382
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x40001382
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x1582
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD1_CLK__USDHC1_CLK            0x158e
+                       MX93_PAD_SD1_CMD__USDHC1_CMD            0x4000138e
+                       MX93_PAD_SD1_DATA0__USDHC1_DATA0        0x4000138e
+                       MX93_PAD_SD1_DATA1__USDHC1_DATA1        0x4000138e
+                       MX93_PAD_SD1_DATA2__USDHC1_DATA2        0x4000138e
+                       MX93_PAD_SD1_DATA3__USDHC1_DATA3        0x4000138e
+                       MX93_PAD_SD1_DATA4__USDHC1_DATA4        0x4000138e
+                       MX93_PAD_SD1_DATA5__USDHC1_DATA5        0x4000138e
+                       MX93_PAD_SD1_DATA6__USDHC1_DATA6        0x4000138e
+                       MX93_PAD_SD1_DATA7__USDHC1_DATA7        0x4000138e
+                       MX93_PAD_SD1_STROBE__USDHC1_STROBE      0x158e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
                fsl,pins = <
                        MX93_PAD_SD1_CLK__USDHC1_CLK            0x15fe
                        MX93_PAD_SD1_CMD__USDHC1_CMD            0x400013fe
                >;
        };
 
+       pinctrl_usdhc2_gpio_sleep: usdhc2gpiosleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CD_B__GPIO3_IO00           0x51e
+               >;
+       };
+
        /* need to config the SION for data and cmd pad, refer to ERR052021 */
        pinctrl_usdhc2: usdhc2grp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x1582
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x40001382
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x40001382
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x40001382
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x40001382
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x40001382
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__USDHC2_CLK            0x158e
+                       MX93_PAD_SD2_CMD__USDHC2_CMD            0x4000138e
+                       MX93_PAD_SD2_DATA0__USDHC2_DATA0        0x4000138e
+                       MX93_PAD_SD2_DATA1__USDHC2_DATA1        0x4000138e
+                       MX93_PAD_SD2_DATA2__USDHC2_DATA2        0x4000138e
+                       MX93_PAD_SD2_DATA3__USDHC2_DATA3        0x4000138e
+                       MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
+               >;
+       };
+
+       /* need to config the SION for data and cmd pad, refer to ERR052021 */
+       pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
                fsl,pins = <
                        MX93_PAD_SD2_CLK__USDHC2_CLK            0x15fe
                        MX93_PAD_SD2_CMD__USDHC2_CMD            0x400013fe
                        MX93_PAD_SD2_VSELECT__USDHC2_VSELECT    0x51e
                >;
        };
+
+       pinctrl_usdhc2_sleep: usdhc2sleepgrp {
+               fsl,pins = <
+                       MX93_PAD_SD2_CLK__GPIO3_IO01            0x51e
+                       MX93_PAD_SD2_CMD__GPIO3_IO02            0x51e
+                       MX93_PAD_SD2_DATA0__GPIO3_IO03          0x51e
+                       MX93_PAD_SD2_DATA1__GPIO3_IO04          0x51e
+                       MX93_PAD_SD2_DATA2__GPIO3_IO05          0x51e
+                       MX93_PAD_SD2_DATA3__GPIO3_IO06          0x51e
+                       MX93_PAD_SD2_VSELECT__GPIO3_IO19        0x51e
+               >;
+       };
+
 };
index 601c94e..4a3f423 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <dt-bindings/clock/imx93-clock.h>
+#include <dt-bindings/dma/fsl-edma.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
                status = "disabled";
        };
 
+       usbphynop1: usbphynop1 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+               clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
+               clock-names = "main_clk";
+       };
+
+       usbphynop2: usbphynop2 {
+               compatible = "usb-nop-xceiv";
+               #phy-cells = <0>;
+               clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>;
+               clock-names = "main_clk";
+       };
+
        soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                                clocks = <&clk IMX93_CLK_LPI2C1_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 7 0 0>, <&edma1 8 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C2_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 9 0 0>, <&edma1 10 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI1_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 11 0 0>, <&edma1 12 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI2_GATE>,
                                         <&clk IMX93_CLK_BUS_AON>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma1 13 0 0>, <&edma1 14 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART1_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma1 17 0 1>, <&edma1 16 0 0>;
+                               dmas = <&edma1 17 0 FSL_EDMA_RX>, <&edma1 16 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART2_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma1 19 0 1>, <&edma1 18 0 0>;
+                               dmas = <&edma1 19 0 FSL_EDMA_RX>, <&edma1 18 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_SAI1_GATE>, <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_DUMMY>;
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
-                               dmas = <&edma1 22 0 1>, <&edma1 21 0 0>;
+                               dmas = <&edma1 22 0 FSL_EDMA_RX>, <&edma1 21 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                reg = <0x44530000 0x10000>;
                                interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>,
                                             <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>,
-                                            <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>;
+                                            <GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_ADC1_GATE>;
                                clock-names = "ipg";
                                #io-channel-cells = <1>;
                                clocks = <&clk IMX93_CLK_LPI2C3_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 8 0 0>, <&edma2 9 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C4_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 10 0 0>, <&edma2 11 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI3_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 12 0 0>, <&edma2 13 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI4_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 14 0 0>, <&edma2 15 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART3_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 18 0 1>, <&edma2 17 0 0>;
+                               dmas = <&edma2 18 0 FSL_EDMA_RX>, <&edma2 17 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART4_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 20 0 1>, <&edma2 19 0 0>;
+                               dmas = <&edma2 20 0 FSL_EDMA_RX>, <&edma2 19 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART5_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 22 0 1>, <&edma2 21 0 0>;
+                               dmas = <&edma2 22 0 FSL_EDMA_RX>, <&edma2 21 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART6_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 24 0 1>, <&edma2 23 0 0>;
+                               dmas = <&edma2 24 0 FSL_EDMA_RX>, <&edma2 23 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_SAI2_GATE>, <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_DUMMY>;
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
-                               dmas = <&edma2 59 0 1>, <&edma2 58 0 0>;
+                               dmas = <&edma2 59 0 FSL_EDMA_RX>, <&edma2 58 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_SAI3_GATE>, <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_DUMMY>;
                                clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
-                               dmas = <&edma2 61 0 1>, <&edma2 60 0 0>;
+                               dmas = <&edma2 61 0 FSL_EDMA_RX>, <&edma2 60 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                         <&clk IMX93_CLK_DUMMY>,
                                         <&clk IMX93_CLK_AUD_XCVR_GATE>;
                                clock-names = "ipg", "phy", "spba", "pll_ipg";
-                               dmas = <&edma2 65 0 1>, <&edma2 66 0 0>;
+                               dmas = <&edma2 65 0 FSL_EDMA_RX>, <&edma2 66 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART7_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 88 0 1>, <&edma2 87 0 0>;
+                               dmas = <&edma2 88 0 FSL_EDMA_RX>, <&edma2 87 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
                                clocks = <&clk IMX93_CLK_LPUART8_GATE>;
                                clock-names = "ipg";
-                               dmas = <&edma2 90 0 1>, <&edma2 89 0 0>;
+                               dmas = <&edma2 90 0 FSL_EDMA_RX>, <&edma2 89 0 0>;
                                dma-names = "rx", "tx";
                                status = "disabled";
                        };
                                clocks = <&clk IMX93_CLK_LPI2C5_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 71 0 0>, <&edma2 72 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C6_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 73 0 0>, <&edma2 74 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C7_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 75 0 0>, <&edma2 76 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPI2C8_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 77 0 0>, <&edma2 78 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI5_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 79 0 0>, <&edma2 80 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI6_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 81 0 0>, <&edma2 82 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI7_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 83 0 0>, <&edma2 84 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                clocks = <&clk IMX93_CLK_LPSPI8_GATE>,
                                         <&clk IMX93_CLK_BUS_WAKEUP>;
                                clock-names = "per", "ipg";
+                               dmas = <&edma2 85 0 0>, <&edma2 86 0 FSL_EDMA_RX>;
+                               dma-names = "tx", "rx";
                                status = "disabled";
                        };
 
                                         <&clk IMX93_CLK_WAKEUP_AXI>,
                                         <&clk IMX93_CLK_USDHC1_GATE>;
                                clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&clk IMX93_CLK_USDHC1>;
+                               assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
+                               assigned-clock-rates = <400000000>;
                                bus-width = <8>;
                                fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                         <&clk IMX93_CLK_WAKEUP_AXI>,
                                         <&clk IMX93_CLK_USDHC2_GATE>;
                                clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&clk IMX93_CLK_USDHC2>;
+                               assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
+                               assigned-clock-rates = <400000000>;
                                bus-width = <4>;
                                fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                                fsl,num-tx-queues = <3>;
                                fsl,num-rx-queues = <3>;
                                fsl,stop-mode = <&wakeupmix_gpr 0x0c 1>;
+                               nvmem-cells = <&eth_mac1>;
+                               nvmem-cell-names = "mac-address";
                                status = "disabled";
                        };
 
                                assigned-clock-rates = <100000000>, <250000000>;
                                intf_mode = <&wakeupmix_gpr 0x28>;
                                snps,clk-csr = <0>;
+                               nvmem-cells = <&eth_mac2>;
+                               nvmem-cell-names = "mac-address";
                                status = "disabled";
                        };
 
                                         <&clk IMX93_CLK_WAKEUP_AXI>,
                                         <&clk IMX93_CLK_USDHC3_GATE>;
                                clock-names = "ipg", "ahb", "per";
+                               assigned-clocks = <&clk IMX93_CLK_USDHC3>;
+                               assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1>;
+                               assigned-clock-rates = <400000000>;
                                bus-width = <4>;
                                fsl,tuning-start-tap = <1>;
                                fsl,tuning-step = <2>;
                        reg = <0x47510000 0x10000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+
+                       eth_mac1: mac-address@4ec {
+                               reg = <0x4ec 0x6>;
+                       };
+
+                       eth_mac2: mac-address@4f2 {
+                               reg = <0x4f2 0x6>;
+                       };
+
                };
 
                s4muap: mailbox@47520000 {
                        status = "disabled";
                };
 
+               usbotg1: usb@4c100000 {
+                       compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+                       reg = <0x4c100000 0x200>;
+                       interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
+                                <&clk IMX93_CLK_HSIO_32K_GATE>;
+                       clock-names = "usb_ctrl_root", "usb_wakeup";
+                       assigned-clocks = <&clk IMX93_CLK_HSIO>;
+                       assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+                       assigned-clock-rates = <133000000>;
+                       phys = <&usbphynop1>;
+                       fsl,usbmisc = <&usbmisc1 0>;
+                       status = "disabled";
+               };
+
+               usbmisc1: usbmisc@4c100200 {
+                       compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
+                                    "fsl,imx6q-usbmisc";
+                       reg = <0x4c100200 0x200>;
+                       #index-cells = <1>;
+               };
+
+               usbotg2: usb@4c200000 {
+                       compatible = "fsl,imx93-usb", "fsl,imx7d-usb", "fsl,imx27-usb";
+                       reg = <0x4c200000 0x200>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>,
+                                <&clk IMX93_CLK_HSIO_32K_GATE>;
+                       clock-names = "usb_ctrl_root", "usb_wakeup";
+                       assigned-clocks = <&clk IMX93_CLK_HSIO>;
+                       assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>;
+                       assigned-clock-rates = <133000000>;
+                       phys = <&usbphynop2>;
+                       fsl,usbmisc = <&usbmisc2 0>;
+                       status = "disabled";
+               };
+
+               usbmisc2: usbmisc@4c200200 {
+                       compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc",
+                                    "fsl,imx6q-usbmisc";
+                       reg = <0x4c200200 0x200>;
+                       #index-cells = <1>;
+               };
+
                ddr-pmu@4e300dc0 {
                        compatible = "fsl,imx93-ddr-pmu";
                        reg = <0x4e300dc0 0x200>;
index 427467d..8152415 100644 (file)
 &mipi_dsi {
        samsung,burst-clock-frequency = <891000000>;
        samsung,esc-clock-frequency = <20000000>;
+};
 
-       ports {
-               port@1 {
-                       reg = <1>;
-
-                       mipi_dsi_out: endpoint {
-                               data-lanes = <1 2 3 4>;
-                               remote-endpoint = <&lvds_bridge_in>;
-                       };
-               };
-       };
+&mipi_dsi_out {
+       data-lanes = <1 2 3 4>;
+       remote-endpoint = <&lvds_bridge_in>;
 };
 
 &pwm3 {
index 5ac1cc9..fc19ae2 100644 (file)
@@ -3,7 +3,7 @@
  * NXP S32G2 SoC family
  *
  * Copyright (c) 2021 SUSE LLC
- * Copyright (c) 2017-2021 NXP
+ * Copyright 2017-2021, 2024 NXP
  */
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
        #address-cells = <2>;
        #size-cells = <2>;
 
+       reserved-memory  {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               scmi_buf: shm@d0000000 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0xd0000000 0x0 0x80>;
+                       no-map;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
        };
 
        firmware {
+               scmi {
+                       compatible = "arm,scmi-smc";
+                       arm,smc-id = <0xc20000fe>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       shmem = <&scmi_buf>;
+
+                       clks: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+               };
+
                psci {
                        compatible = "arm,psci-1.0";
                        method = "smc";
                        status = "disabled";
                };
 
+               usdhc0: mmc@402f0000 {
+                       compatible = "nxp,s32g2-usdhc";
+                       reg = <0x402f0000 0x1000>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks 32>, <&clks 31>, <&clks 33>;
+                       clock-names = "ipg", "ahb", "per";
+                       bus-width = <8>;
+                       status = "disabled";
+               };
+
                gic: interrupt-controller@50800000 {
                        compatible = "arm,gic-v3";
                        reg = <0x50800000 0x10000>,
index 9118d8d..00070c9 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
  * Copyright (c) 2021 SUSE LLC
- * Copyright (c) 2019-2021 NXP
+ * Copyright 2019-2021, 2024 NXP
  */
 
 /dts-v1/;
@@ -32,3 +32,7 @@
 &uart0 {
        status = "okay";
 };
+
+&usdhc0 {
+       status = "okay";
+};
index e05ee85..b3fc128 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 /*
  * Copyright (c) 2021 SUSE LLC
- * Copyright (c) 2019-2021 NXP
+ * Copyright 2019-2021, 2024 NXP
  */
 
 /dts-v1/;
@@ -38,3 +38,7 @@
 &uart1 {
        status = "okay";
 };
+
+&usdhc0 {
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/s32g3.dtsi b/arch/arm64/boot/dts/freescale/s32g3.dtsi
new file mode 100644 (file)
index 0000000..c1b0899
--- /dev/null
@@ -0,0 +1,233 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2021-2023 NXP
+ *
+ * Authors: Ghennadi Procopciuc <ghennadi.procopciuc@nxp.com>
+ *          Ciprian Costea <ciprianmarian.costea@nxp.com>
+ *          Andra-Teodora Ilie <andra.ilie@nxp.com>
+ */
+
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+       compatible = "nxp,s32g3";
+       interrupt-parent = <&gic>;
+       #address-cells = <0x02>;
+       #size-cells = <0x02>;
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               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>;
+                               };
+                       };
+               };
+
+               cpu0: cpu@0 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x0>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu1: cpu@1 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x1>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu2: cpu@2 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x2>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu3: cpu@3 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x3>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu4: cpu@100 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x100>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu5: cpu@101 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x101>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu6: cpu@102 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x102>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+
+               cpu7: cpu@103 {
+                       device_type = "cpu";
+                       compatible = "arm,cortex-a53";
+                       reg = <0x103>;
+                       enable-method = "psci";
+                       clocks = <&dfs 0>;
+               };
+       };
+
+       firmware {
+               scmi: scmi {
+                       compatible = "arm,scmi-smc";
+                       shmem = <&scmi_shmem>;
+                       arm,smc-id = <0xc20000fe>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       dfs: protocol@13 {
+                               reg = <0x13>;
+                               #clock-cells = <1>;
+                       };
+
+                       clks: protocol@14 {
+                               reg = <0x14>;
+                               #clock-cells = <1>;
+                       };
+               };
+
+               psci: psci {
+                       compatible = "arm,psci-1.0";
+                       method = "smc";
+               };
+       };
+
+
+       pmu {
+               compatible = "arm,cortex-a53-pmu";
+               interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
+       };
+
+       reserved-memory  {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               scmi_shmem: shm@d0000000 {
+                       compatible = "arm,scmi-shmem";
+                       reg = <0x0 0xd0000000 0x0 0x80>;
+                       no-map;
+               };
+       };
+
+       soc@0 {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges = <0 0 0 0x80000000>;
+
+               uart0: serial@401c8000 {
+                       compatible = "nxp,s32g3-linflexuart",
+                                    "fsl,s32v234-linflexuart";
+                       reg = <0x401c8000 0x3000>;
+                       interrupts = <GIC_SPI 82 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+               };
+
+               uart1: serial@401cc000 {
+                       compatible = "nxp,s32g3-linflexuart",
+                                    "fsl,s32v234-linflexuart";
+                       reg = <0x401cc000 0x3000>;
+                       interrupts = <GIC_SPI 83 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+               };
+
+               uart2: serial@402bc000 {
+                       compatible = "nxp,s32g3-linflexuart",
+                                    "fsl,s32v234-linflexuart";
+                       reg = <0x402bc000 0x3000>;
+                       interrupts = <GIC_SPI 84 IRQ_TYPE_EDGE_RISING>;
+                       status = "disabled";
+               };
+
+               usdhc0: mmc@402f0000 {
+                       compatible = "nxp,s32g3-usdhc",
+                                    "nxp,s32g2-usdhc";
+                       reg = <0x402f0000 0x1000>;
+                       interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clks 32>,
+                                <&clks 31>,
+                                <&clks 33>;
+                       clock-names = "ipg", "ahb", "per";
+                       status = "disabled";
+               };
+
+               gic: interrupt-controller@50800000 {
+                       compatible = "arm,gic-v3";
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       reg = <0x50800000 0x10000>,
+                             <0x50900000 0x200000>,
+                             <0x50400000 0x2000>,
+                             <0x50410000 0x2000>,
+                             <0x50420000 0x2000>;
+                       interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
+               };
+       };
+
+       timer {
+               compatible = "arm,armv8-timer";
+               interrupt-parent = <&gic>;
+               interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* sec-phys */
+                            <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* phys */
+                            <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* virt */
+                            <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>, /* hyp-phys */
+                            <GIC_PPI 12 IRQ_TYPE_LEVEL_LOW>; /* hyp-virt */
+               arm,no-tick-in-suspend;
+       };
+};
diff --git a/arch/arm64/boot/dts/freescale/s32g399a-rdb3.dts b/arch/arm64/boot/dts/freescale/s32g399a-rdb3.dts
new file mode 100644 (file)
index 0000000..9d67481
--- /dev/null
@@ -0,0 +1,45 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+/*
+ * Copyright 2021-2023 NXP
+ *
+ * NXP S32G3 Reference Design Board 3 (S32G-VNP-RDB3)
+ */
+
+/dts-v1/;
+
+#include "s32g3.dtsi"
+
+/ {
+       model = "NXP S32G3 Reference Design Board 3 (S32G-VNP-RDB3)";
+       compatible = "nxp,s32g399a-rdb3", "nxp,s32g3";
+
+       aliases {
+               mmc0 = &usdhc0;
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       /* 4GiB RAM */
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x0 0x80000000 0 0x80000000>,
+                     <0x8 0x80000000 0 0x80000000>;
+       };
+};
+
+&uart0 {
+       status = "okay";
+};
+
+&uart1 {
+       status = "okay";
+};
+
+&usdhc0 {
+       bus-width = <8>;
+       status = "okay";
+};
index ed1b5a7..f6bc001 100644 (file)
                        device_type = "cpu";
                        reg = <0x0 0x0>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
 
                cpu@1 {
                        device_type = "cpu";
                        reg = <0x0 0x1>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
 
                cpu@2 {
                        device_type = "cpu";
                        reg = <0x0 0x2>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
 
                cpu@3 {
                        device_type = "cpu";
                        reg = <0x0 0x3>;
                        enable-method = "psci";
+                       d-cache-size = <0x8000>; /* 32 KiB */
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       i-cache-size = <0x8000>; /* 32 KiB */
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       next-level-cache = <&L2>;
                };
        };
 
+       L2: l2-cache {
+               compatible = "cache";
+               cache-unified;
+               cache-size = <0x80000>; /* 512 KiB */
+               cache-line-size = <64>;
+               cache-sets = <512>;
+               cache-level = <2>;
+       };
+
        gic: interrupt-controller@f1001000 {
                compatible = "arm,gic-400";
                reg = <0x0 0xf1001000 0x0 0x1000>,  /* GICD */
-                     <0x0 0xf1002000 0x0 0x100>;   /* GICC */
+                     <0x0 0xf1002000 0x0 0x2000>,  /* GICC */
+                     <0x0 0xf1004000 0x0 0x2000>,  /* GICH */
+                     <0x0 0xf1006000 0x0 0x2000>;  /* GICV */
+               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) |
+                             IRQ_TYPE_LEVEL_HIGH)>;
                #address-cells = <0>;
                #interrupt-cells = <3>;
                interrupt-controller;
index f0672ec..2d304ef 100644 (file)
@@ -82,7 +82,7 @@
                };
        };
 
-       reg_sys_5v: regulator@0 {
+       reg_sys_5v: regulator-0 {
                compatible = "regulator-fixed";
                regulator-name = "SYS_5V";
                regulator-min-microvolt = <5000000>;
@@ -91,7 +91,7 @@
                regulator-always-on;
        };
 
-       reg_vdd_3v3: regulator@1 {
+       reg_vdd_3v3: regulator-1 {
                compatible = "regulator-fixed";
                regulator-name = "VDD_3V3";
                regulator-min-microvolt = <3300000>;
                vin-supply = <&reg_sys_5v>;
        };
 
-       reg_5v_hub: regulator@2 {
+       reg_5v_hub: regulator-2 {
                compatible = "regulator-fixed";
                regulator-name = "5V_HUB";
                regulator-min-microvolt = <5000000>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        port@0 {
+                               reg = <0>;
                                adv7533_in: endpoint {
                                        remote-endpoint = <&dsi_out0>;
                                };
index be808bb..a589954 100644 (file)
                        clock-names = "wdog_clk", "apb_pclk";
                };
 
-               tsensor: tsensor@0,f7030700 {
+               tsensor: tsensor@f7030700 {
                        compatible = "hisilicon,tsensor";
                        reg = <0x0 0xf7030700 0x0 0x1000>;
                        interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
index c4eaebb..b7792d4 100644 (file)
@@ -54,7 +54,7 @@
        ranges = <0 0 0x0 0x90000000 0x08000000>,
                 <1 0 0x0 0x98000000 0x08000000>;
 
-       nor-flash@0,0 {
+       nor-flash@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "numonyx,js28f00a", "cfi-flash";
@@ -75,7 +75,7 @@
                };
        };
 
-       cpld@1,0 {
+       cpld@100000000 {
                compatible = "hisilicon,hip05-cpld";
                reg = <1 0x0 0x100>;
        };
index 65ddc06..d0912ca 100644 (file)
                };
        };
 
+       refclk200mhz: refclk200mhz {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <200000000>;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                #size-cells = <2>;
                ranges;
 
-               refclk200mhz: refclk200mhz {
-                       compatible = "fixed-clock";
-                       #clock-cells = <0>;
-                       clock-frequency = <200000000>;
-               };
-
                uart0: serial@80300000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x0 0x80300000 0x0 0x10000>;
index f46c33d..3d7285e 100644 (file)
                };
        };
 
+       eth2: ethernet-0 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <0>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth3: ethernet-1 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <1>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth0: ethernet-4 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <4>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth1: ethernet-5 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <5>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       refclk: refclk {
+               compatible = "fixed-clock";
+               clock-frequency = <50000000>;
+               #clock-cells = <0>;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                        };
                };
 
-               refclk: refclk {
-                       compatible = "fixed-clock";
-                       clock-frequency = <50000000>;
-                       #clock-cells = <0>;
-               };
-
                usb_ohci: usb@a7030000 {
                        compatible = "generic-ohci";
                        reg = <0x0 0xa7030000 0x0 0x10000>;
                        };
                };
 
-               dsaf0: dsa@c7000000 {
+               dsaf0: dsa@c5000000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "hisilicon,hns-dsaf-v2";
                        };
                };
 
-               eth0: ethernet-4 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <4>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth1: ethernet-5 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <5>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth2: ethernet-0 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <0>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth3: ethernet-1 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <1>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
                sas0: sas@c3000000 {
                        compatible = "hisilicon,hip06-sas-v2";
                        reg = <0 0xc3000000 0 0x10000>;
                        status = "disabled";
                };
 
-               pcie0: pcie@a0090000 {
+               pcie0: pcie@b0000000 {
                        compatible = "hisilicon,hip06-pcie-ecam";
                        reg = <0 0xb0000000 0 0x2000000>,
                              <0 0xa0090000 0 0x10000>;
index 81d907e..00a6bfa 100644 (file)
                };
        };
 
+       eth0: ethernet-0 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <4>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth1: ethernet-1 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <5>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth2: ethernet-2 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <0>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
+       eth3: ethernet-3 {
+               compatible = "hisilicon,hns-nic-v2";
+               ae-handle = <&dsaf0>;
+               port-idx-in-ae = <1>;
+               local-mac-address = [00 00 00 00 00 00];
+               status = "disabled";
+               dma-coherent;
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
                        };
                };
 
-               dsaf0: dsa@c7000000 {
+               dsaf0: dsa@c5000000 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        compatible = "hisilicon,hns-dsaf-v2";
                        };
                };
 
-               eth0: ethernet@4 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <4>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth1: ethernet@5 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <5>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth2: ethernet@0 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <0>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
-               eth3: ethernet@1 {
-                       compatible = "hisilicon,hns-nic-v2";
-                       ae-handle = <&dsaf0>;
-                       port-idx-in-ae = <1>;
-                       local-mac-address = [00 00 00 00 00 00];
-                       status = "disabled";
-                       dma-coherent;
-               };
-
                infiniband@c4000000 {
                        compatible = "hisilicon,hns-roce-v1";
                        reg = <0x0 0xc4000000 0x0 0x100000>;
                        status = "disabled";
                };
 
-               p0_pcie2_a: pcie@a00a0000 {
+               p0_pcie2_a: pcie@af800000 {
                        compatible = "hisilicon,hip07-pcie-ecam";
                        reg = <0 0xaf800000 0 0x800000>,
                              <0 0xa00a0000 0 0x10000>;
                                         0x0 0 0 4 &mbigen_pcie2_a 671 4>;
                        status = "disabled";
                };
-               p0_sec_a: crypto@d2000000 {
+               p0_sec_a: crypto@d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x0 0xd0000000 0x0 0x10000>,
                              <0x0 0xd2000000 0x0 0x10000>,
                                     <605 1>, <606 4>,
                                     <607 1>, <608 4>;
                };
-               p0_sec_b: crypto@8,d2000000 {
+               p0_sec_b: crypto@8d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x8 0xd0000000 0x0 0x10000>,
                              <0x8 0xd2000000 0x0 0x10000>,
                                     <605 1>, <606 4>,
                                     <607 1>, <608 4>;
                };
-               p1_sec_a: crypto@400,d2000000 {
+               p1_sec_a: crypto@400d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x400 0xd0000000 0x0 0x10000>,
                              <0x400 0xd2000000 0x0 0x10000>,
                                     <605 1>, <606 4>,
                                     <607 1>, <608 4>;
                };
-               p1_sec_b: crypto@408,d2000000 {
+               p1_sec_b: crypto@408d0000000 {
                        compatible = "hisilicon,hip07-sec";
                        reg = <0x408 0xd0000000 0x0 0x10000>,
                              <0x408 0xd2000000 0x0 0x10000>,
index 781761d..ae00e9e 100644 (file)
@@ -70,7 +70,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 0x7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 76aafa1..2a5eeb2 100644 (file)
@@ -80,7 +80,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>,
index 260a2c5..cdd10f1 100644 (file)
@@ -22,7 +22,7 @@
                serial2 = &uart2;
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x00000000 0x20000000>;
        };
index e89ae85..6ace977 100644 (file)
@@ -22,7 +22,7 @@
                serial2 = &uart2;
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x00000000 0x20000000>;
        };
index 5591939..75377c2 100644 (file)
@@ -68,7 +68,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 12 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index d6d37a1..91c2f8b 100644 (file)
@@ -25,8 +25,6 @@
        /* Actual device is MV88E6361 */
        switch: switch@0 {
                compatible = "marvell,mv88e6190";
-               #address-cells = <1>;
-               #size-cells = <0>;
                reg = <0>;
                status = "disabled";
 
index 870bb38..b3cc2b7 100644 (file)
 };
 
 &mdio {
+       /* Switch is @3, not @1 */
+       /delete-node/ ethernet-switch@1;
        extphy: ethernet-phy@1 {
                reg = <1>;
 
                reset-gpios = <&gpionb 2 GPIO_ACTIVE_LOW>;
        };
-};
 
-&switch0 {
-       reg = <3>;
+       switch0: ethernet-switch@3 {
+               compatible = "marvell,mv88e6085";
+               reg = <3>;
 
-       reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&gpiosb 23 GPIO_ACTIVE_LOW>;
+               dsa,member = <0 0>;
 
-       ethernet-ports {
-               switch0port1: ethernet-port@1 {
-                       reg = <1>;
-                       label = "lan0";
-                       phy-handle = <&switch0phy0>;
-               };
+               ethernet-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0port0: ethernet-port@0 {
+                               reg = <0>;
+                               label = "cpu";
+                               ethernet = <&eth0>;
+                               phy-mode = "rgmii-id";
+                               fixed-link {
+                                       speed = <1000>;
+                                       full-duplex;
+                               };
+                       };
 
-               switch0port2: ethernet-port@2 {
-                       reg = <2>;
-                       label = "lan1";
-                       phy-handle = <&switch0phy1>;
-               };
+                       switch0port1: ethernet-port@1 {
+                               reg = <1>;
+                               label = "lan0";
+                               phy-handle = <&switch0phy0>;
+                       };
 
-               switch0port3: ethernet-port@3 {
-                       reg = <3>;
-                       label = "lan2";
-                       phy-handle = <&switch0phy2>;
-               };
+                       switch0port2: ethernet-port@2 {
+                               reg = <2>;
+                               label = "lan1";
+                               phy-handle = <&switch0phy1>;
+                       };
 
-               switch0port4: ethernet-port@4 {
-                       reg = <4>;
-                       label = "lan3";
-                       phy-handle = <&switch0phy3>;
-               };
+                       switch0port3: ethernet-port@3 {
+                               reg = <3>;
+                               label = "lan2";
+                               phy-handle = <&switch0phy2>;
+                       };
 
-               switch0port5: ethernet-port@5 {
-                       reg = <5>;
-                       label = "wan";
-                       phy-handle = <&extphy>;
-                       phy-mode = "sgmii";
+                       switch0port4: ethernet-port@4 {
+                               reg = <4>;
+                               label = "lan3";
+                               phy-handle = <&switch0phy3>;
+                       };
+
+                       switch0port5: ethernet-port@5 {
+                               reg = <5>;
+                               label = "wan";
+                               phy-handle = <&extphy>;
+                               phy-mode = "sgmii";
+                       };
                };
-       };
 
-       mdio {
-               switch0phy3: ethernet-phy@14 {
-                       reg = <0x14>;
+               mdio {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       switch0phy0: ethernet-phy@11 {
+                               reg = <0x11>;
+                       };
+                       switch0phy1: ethernet-phy@12 {
+                               reg = <0x12>;
+                       };
+                       switch0phy2: ethernet-phy@13 {
+                               reg = <0x13>;
+                       };
+                       switch0phy3: ethernet-phy@14 {
+                               reg = <0x14>;
+                       };
                };
        };
 };
index f1a9f22..54453b0 100644 (file)
        assigned-clock-rates = <20000000>;
 
        flash@0 {
-               #address-cells = <1>;
-               #size-cells = <1>;
                compatible = "jedec,spi-nor";
                reg = <0>;
                spi-max-frequency = <20000000>;
index 1cc3fa1..9603223 100644 (file)
@@ -68,7 +68,7 @@
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 7ec7c78..fdf88cd 100644 (file)
@@ -61,7 +61,7 @@
                        compatible = "simple-bus";
                        ranges = <0x0 0x0 0xf0000000 0x1000000>;
 
-                       smmu: iommu@5000000 {
+                       smmu: iommu@100000 {
                                compatible = "marvell,ap806-smmu-500", "arm,mmu-500";
                                reg = <0x100000 0x100000>;
                                dma-coherent;
index 6fcc34f..5e7d6de 100644 (file)
@@ -26,7 +26,7 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       ap0_reg_mmc_vccq: ap0_mmc_vccq@0 {
+       ap0_reg_mmc_vccq: regulator-1 {
                compatible = "regulator-gpio";
                regulator-name = "ap0_mmc_vccq";
                regulator-min-microvolt = <1800000>;
@@ -36,7 +36,7 @@
                          3300000 0x0>;
        };
 
-       cp0_reg_usb3_vbus1: cp0_usb3_vbus@1 {
+       cp0_reg_usb3_vbus1: regulator-2 {
                compatible = "regulator-fixed";
                regulator-name = "cp0-xhci1-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&expander0 8 GPIO_ACTIVE_HIGH>;
        };
 
-       cp0_usb3_0_phy0: cp0_usb3_phy0 {
+       cp0_usb3_0_phy0: usb-phy-1 {
                compatible = "usb-nop-xceiv";
        };
 
-       cp0_usb3_0_phy1: cp0_usb3_phy1 {
+       cp0_usb3_0_phy1: usb-phy-2 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp0_reg_usb3_vbus1>;
        };
 
-       cp0_reg_sd_vccq: cp0_sd_vccq@0 {
+       cp0_reg_sd_vccq: regulator-3 {
                compatible = "regulator-gpio";
                regulator-name = "cp0_sd_vccq";
                regulator-min-microvolt = <1800000>;
@@ -64,7 +64,7 @@
                          3300000 0x0>;
        };
 
-       cp0_reg_sd_vcc: cp0_sd_vcc@0 {
+       cp0_reg_sd_vcc: regulator-4 {
                compatible = "regulator-fixed";
                regulator-name = "cp0_sd_vcc";
                regulator-min-microvolt = <3300000>;
@@ -82,7 +82,6 @@
                tx-disable-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>;
                tx-fault-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_HIGH>;
                maximum-power-milliwatt = <3000>;
-               status = "okay";
        };
 };
 
index 6eb6a17..be56a23 100644 (file)
@@ -30,7 +30,7 @@
                reg = <0x0 0x0 0x0 0x80000000>;
        };
 
-       ap0_reg_sd_vccq: ap0_sd_vccq@0 {
+       ap0_reg_sd_vccq: regulator-1 {
                compatible = "regulator-gpio";
                regulator-name = "ap0_sd_vccq";
                regulator-min-microvolt = <1800000>;
@@ -39,7 +39,7 @@
                states = <1800000 0x1 3300000 0x0>;
        };
 
-       cp0_reg_usb3_vbus0: cp0_usb3_vbus@0 {
+       cp0_reg_usb3_vbus0: regulator-2 {
                compatible = "regulator-fixed";
                regulator-name = "cp0-xhci0-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&expander0 0 GPIO_ACTIVE_HIGH>;
        };
 
-       cp0_usb3_0_phy0: cp0_usb3_phy@0 {
+       cp0_usb3_0_phy0: usb-phy-1 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp0_reg_usb3_vbus0>;
        };
 
-       cp0_reg_usb3_vbus1: cp0_usb3_vbus@1 {
+       cp0_reg_usb3_vbus1: regulator-3 {
                compatible = "regulator-fixed";
                regulator-name = "cp0-xhci1-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
        };
 
-       cp0_usb3_0_phy1: cp0_usb3_phy@1 {
+       cp0_usb3_0_phy1: usb-phy-2 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp0_reg_usb3_vbus1>;
        };
 
-       cp0_reg_sd_vccq: cp0_sd_vccq@0 {
+       cp0_reg_sd_vccq: regulator-4 {
                compatible = "regulator-gpio";
                regulator-name = "cp0_sd_vccq";
                regulator-min-microvolt = <1800000>;
@@ -77,7 +77,7 @@
                          3300000 0x0>;
        };
 
-       cp0_reg_sd_vcc: cp0_sd_vcc@0 {
+       cp0_reg_sd_vcc: regulator-5 {
                compatible = "regulator-fixed";
                regulator-name = "cp0_sd_vcc";
                regulator-min-microvolt = <3300000>;
@@ -87,7 +87,7 @@
                regulator-always-on;
        };
 
-       cp0_sfp_eth0: sfp-eth@0 {
+       cp0_sfp_eth0: sfp-eth-1 {
                compatible = "sff,sfp";
                i2c-bus = <&cp0_sfpp0_i2c>;
                los-gpios = <&cp0_module_expander1 11 GPIO_ACTIVE_HIGH>;
        reg = <0x700680 0x50>;
 
        flash@0 {
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                /* On-board MUX does not allow higher frequencies */
index ff8422f..ad7360c 100644 (file)
@@ -18,7 +18,7 @@
                ethernet4 = &cp1_eth1;
        };
 
-       cp1_reg_usb3_vbus0: cp1_usb3_vbus@0 {
+       cp1_reg_usb3_vbus0: regulator-6 {
                compatible = "regulator-fixed";
                pinctrl-names = "default";
                pinctrl-0 = <&cp1_xhci0_vbus_pins>;
                gpio = <&cp1_gpio1 3 GPIO_ACTIVE_HIGH>;
        };
 
-       cp1_usb3_0_phy0: cp1_usb3_phy0 {
+       cp1_usb3_0_phy0: usb-phy-3 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp1_reg_usb3_vbus0>;
        };
 
-       cp1_sfp_eth1: sfp-eth1 {
+       cp1_sfp_eth1: sfp-eth-2 {
                compatible = "sff,sfp";
                i2c-bus = <&cp1_i2c0>;
                los-gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
        reg = <0x700680 0x50>;
 
        flash@0 {
-               #address-cells = <0x1>;
-               #size-cells = <0x1>;
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                /* On-board MUX does not allow higher frequencies */
index 512a4fa..e753cfd 100644 (file)
@@ -17,7 +17,7 @@
                ethernet5 = &cp2_eth0;
        };
 
-       cp2_reg_usb3_vbus0: cp2_usb3_vbus@0 {
+       cp2_reg_usb3_vbus0: regulator-7 {
                compatible = "regulator-fixed";
                regulator-name = "cp2-xhci0-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&cp2_gpio1 2 GPIO_ACTIVE_HIGH>;
        };
 
-       cp2_usb3_0_phy0: cp2_usb3_phy0 {
+       cp2_usb3_0_phy0: usb-phy-4 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp2_reg_usb3_vbus0>;
        };
 
-       cp2_reg_usb3_vbus1: cp2_usb3_vbus@1 {
+       cp2_reg_usb3_vbus1: regulator-8 {
                compatible = "regulator-fixed";
                regulator-name = "cp2-xhci1-vbus";
                regulator-min-microvolt = <5000000>;
                gpio = <&cp2_gpio1 3 GPIO_ACTIVE_HIGH>;
        };
 
-       cp2_usb3_0_phy1: cp2_usb3_phy1 {
+       cp2_usb3_0_phy1: usb-phy-5 {
                compatible = "usb-nop-xceiv";
                vcc-supply = <&cp2_reg_usb3_vbus1>;
        };
 
-       cp2_reg_sd_vccq: cp2_sd_vccq@0 {
+       cp2_reg_sd_vccq: regulator-9 {
                compatible = "regulator-gpio";
                regulator-name = "cp2_sd_vcc";
                regulator-min-microvolt = <1800000>;
@@ -54,7 +54,7 @@
                states = <1800000 0x1 3300000 0x0>;
        };
 
-       cp2_sfp_eth0: sfp-eth0 {
+       cp2_sfp_eth0: sfp-eth-3 {
                compatible = "sff,sfp";
                i2c-bus = <&cp2_sfpp0_i2c>;
                los-gpios = <&cp2_module_expander1 11 GPIO_ACTIVE_HIGH>;
index 9cbd6dd..d0b03dc 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a35-pmu";
                interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_SPI 5 IRQ_TYPE_LEVEL_LOW>,
                             <GIC_SPI 6 IRQ_TYPE_LEVEL_LOW>,
index 24075cd..c3029e0 100644 (file)
                        pinctrl-names = "default";
                        #address-cells = <1>;
                        #size-cells = <0>;
-                       reg = <0x6 0x110102d4 0x24>;
+                       reg = <0x6 0x110102f8 0x24>;
                };
 
                mdio3: mdio@61101031c {
                        reg = <0x6 0x1101031c 0x24>;
                };
 
-               serdes: serdes@10808000 {
+               serdes: serdes@610808000 {
                        compatible = "microchip,sparx5-serdes";
                        #phy-cells = <1>;
                        clocks = <&sys_clk>;
index f3e226d..2c55747 100644 (file)
 
        leds {
                compatible = "gpio-leds";
-               led@0 {
+               led-0 {
                        label = "twr0:green";
                        gpios = <&sgpio_out0 8 0 GPIO_ACTIVE_LOW>;
                };
-               led@1 {
+               led-1 {
                        label = "twr0:yellow";
                        gpios = <&sgpio_out0 8 1 GPIO_ACTIVE_LOW>;
                };
-               led@2 {
+               led-2 {
                        label = "twr1:green";
                        gpios = <&sgpio_out0 9 0 GPIO_ACTIVE_LOW>;
                };
-               led@3 {
+               led-3 {
                        label = "twr1:yellow";
                        gpios = <&sgpio_out0 9 1 GPIO_ACTIVE_LOW>;
                };
-               led@4 {
+               led-4 {
                        label = "twr2:green";
                        gpios = <&sgpio_out0 10 0 GPIO_ACTIVE_LOW>;
                };
-               led@5 {
+               led-5 {
                        label = "twr2:yellow";
                        gpios = <&sgpio_out0 10 1 GPIO_ACTIVE_LOW>;
                };
-               led@6 {
+               led-6 {
                        label = "twr3:green";
                        gpios = <&sgpio_out0 11 0 GPIO_ACTIVE_LOW>;
                };
-               led@7 {
+               led-7 {
                        label = "twr3:yellow";
                        gpios = <&sgpio_out0 11 1 GPIO_ACTIVE_LOW>;
                };
-               led@8 {
+               led-8 {
                        label = "eth12:green";
                        gpios = <&sgpio_out0 12 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@9 {
+               led-9 {
                        label = "eth12:yellow";
                        gpios = <&sgpio_out0 12 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@10 {
+               led-10 {
                        label = "eth13:green";
                        gpios = <&sgpio_out0 13 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@11 {
+               led-11 {
                        label = "eth13:yellow";
                        gpios = <&sgpio_out0 13 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@12 {
+               led-12 {
                        label = "eth14:green";
                        gpios = <&sgpio_out0 14 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@13 {
+               led-13 {
                        label = "eth14:yellow";
                        gpios = <&sgpio_out0 14 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@14 {
+               led-14 {
                        label = "eth15:green";
                        gpios = <&sgpio_out0 15 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@15 {
+               led-15 {
                        label = "eth15:yellow";
                        gpios = <&sgpio_out0 15 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@16 {
+               led-16 {
                        label = "eth48:green";
                        gpios = <&sgpio_out1 16 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@17 {
+               led-17 {
                        label = "eth48:yellow";
                        gpios = <&sgpio_out1 16 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@18 {
+               led-18 {
                        label = "eth49:green";
                        gpios = <&sgpio_out1 17 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@19 {
+               led-19 {
                        label = "eth49:yellow";
                        gpios = <&sgpio_out1 17 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@20 {
+               led-20 {
                        label = "eth50:green";
                        gpios = <&sgpio_out1 18 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@21 {
+               led-21 {
                        label = "eth50:yellow";
                        gpios = <&sgpio_out1 18 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@22 {
+               led-22 {
                        label = "eth51:green";
                        gpios = <&sgpio_out1 19 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@23 {
+               led-23 {
                        label = "eth51:yellow";
                        gpios = <&sgpio_out1 19 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@24 {
+               led-24 {
                        label = "eth52:green";
                        gpios = <&sgpio_out1 20 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@25 {
+               led-25 {
                        label = "eth52:yellow";
                        gpios = <&sgpio_out1 20 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@26 {
+               led-26 {
                        label = "eth53:green";
                        gpios = <&sgpio_out1 21 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@27 {
+               led-27 {
                        label = "eth53:yellow";
                        gpios = <&sgpio_out1 21 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@28 {
+               led-28 {
                        label = "eth54:green";
                        gpios = <&sgpio_out1 22 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@29 {
+               led-29 {
                        label = "eth54:yellow";
                        gpios = <&sgpio_out1 22 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@30 {
+               led-30 {
                        label = "eth55:green";
                        gpios = <&sgpio_out1 23 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@31 {
+               led-31 {
                        label = "eth55:yellow";
                        gpios = <&sgpio_out1 23 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@32 {
+               led-32 {
                        label = "eth56:green";
                        gpios = <&sgpio_out1 24 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@33 {
+               led-33 {
                        label = "eth56:yellow";
                        gpios = <&sgpio_out1 24 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@34 {
+               led-34 {
                        label = "eth57:green";
                        gpios = <&sgpio_out1 25 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@35 {
+               led-35 {
                        label = "eth57:yellow";
                        gpios = <&sgpio_out1 25 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@36 {
+               led-36 {
                        label = "eth58:green";
                        gpios = <&sgpio_out1 26 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@37 {
+               led-37 {
                        label = "eth58:yellow";
                        gpios = <&sgpio_out1 26 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@38 {
+               led-38 {
                        label = "eth59:green";
                        gpios = <&sgpio_out1 27 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@39 {
+               led-39 {
                        label = "eth59:yellow";
                        gpios = <&sgpio_out1 27 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@40 {
+               led-40 {
                        label = "eth60:green";
                        gpios = <&sgpio_out1 28 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@41 {
+               led-41 {
                        label = "eth60:yellow";
                        gpios = <&sgpio_out1 28 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@42 {
+               led-42 {
                        label = "eth61:green";
                        gpios = <&sgpio_out1 29 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@43 {
+               led-43 {
                        label = "eth61:yellow";
                        gpios = <&sgpio_out1 29 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@44 {
+               led-44 {
                        label = "eth62:green";
                        gpios = <&sgpio_out1 30 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@45 {
+               led-45 {
                        label = "eth62:yellow";
                        gpios = <&sgpio_out1 30 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@46 {
+               led-46 {
                        label = "eth63:green";
                        gpios = <&sgpio_out1 31 0 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
-               led@47 {
+               led-47 {
                        label = "eth63:yellow";
                        gpios = <&sgpio_out1 31 1 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
        };
 };
 
-&spi0 {
-       status = "okay";
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               spi-max-frequency = <8000000>;
-               reg = <0>;
-       };
-};
-
 &spi0 {
        status = "okay";
        spi@0 {
 };
 
 &axi {
-       i2c0_imux: i2c0-imux@0 {
+       i2c0_imux: i2c-mux-0 {
                compatible = "i2c-mux-pinctrl";
                #address-cells = <1>;
                #size-cells = <0>;
                i2c-parent = <&i2c0>;
        };
-       i2c0_emux: i2c0-emux@0 {
+       i2c0_emux: i2c-mux-1 {
                compatible = "i2c-mux-gpio";
                #address-cells = <1>;
                #size-cells = <0>;
        pinctrl-10 = <&i2cmux_10>;
        pinctrl-11 = <&i2cmux_11>;
        pinctrl-12 = <&i2cmux_pins_i>;
-       i2c_sfp1: i2c_sfp1 {
+       i2c_sfp1: i2c@0 {
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp2: i2c_sfp2 {
+       i2c_sfp2: i2c@1 {
                reg = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp3: i2c_sfp3 {
+       i2c_sfp3: i2c@2 {
                reg = <0x2>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp4: i2c_sfp4 {
+       i2c_sfp4: i2c@3 {
                reg = <0x3>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp5: i2c_sfp5 {
+       i2c_sfp5: i2c@4 {
                reg = <0x4>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp6: i2c_sfp6 {
+       i2c_sfp6: i2c@5 {
                reg = <0x5>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp7: i2c_sfp7 {
+       i2c_sfp7: i2c@6 {
                reg = <0x6>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp8: i2c_sfp8 {
+       i2c_sfp8: i2c@7 {
                reg = <0x7>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp9: i2c_sfp9 {
+       i2c_sfp9: i2c@8 {
                reg = <0x8>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp10: i2c_sfp10 {
+       i2c_sfp10: i2c@9 {
                reg = <0x9>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp11: i2c_sfp11 {
+       i2c_sfp11: i2c@a {
                reg = <0xa>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp12: i2c_sfp12 {
+       i2c_sfp12: i2c@b {
                reg = <0xb>;
                #address-cells = <1>;
                #size-cells = <0>;
                     &gpio 61 GPIO_ACTIVE_HIGH
                     &gpio 54 GPIO_ACTIVE_HIGH>;
        idle-state = <0x8>;
-       i2c_sfp13: i2c_sfp13 {
+       i2c_sfp13: i2c@0 {
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp14: i2c_sfp14 {
+       i2c_sfp14: i2c@1 {
                reg = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp15: i2c_sfp15 {
+       i2c_sfp15: i2c@2 {
                reg = <0x2>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp16: i2c_sfp16 {
+       i2c_sfp16: i2c@3 {
                reg = <0x3>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp17: i2c_sfp17 {
+       i2c_sfp17: i2c@4 {
                reg = <0x4>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp18: i2c_sfp18 {
+       i2c_sfp18: i2c@5 {
                reg = <0x5>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp19: i2c_sfp19 {
+       i2c_sfp19: i2c@6 {
                reg = <0x6>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp20: i2c_sfp20 {
+       i2c_sfp20: i2c@7 {
                reg = <0x7>;
                #address-cells = <1>;
                #size-cells = <0>;
index 82ce007..af2f183 100644 (file)
 
        leds {
                compatible = "gpio-leds";
-               led@0 {
+               led-0 {
                        label = "eth60:yellow";
                        gpios = <&sgpio_out1 28 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@1 {
+               led-1 {
                        label = "eth60:green";
                        gpios = <&sgpio_out1 28 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@2 {
+               led-2 {
                        label = "eth61:yellow";
                        gpios = <&sgpio_out1 29 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@3 {
+               led-3 {
                        label = "eth61:green";
                        gpios = <&sgpio_out1 29 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@4 {
+               led-4 {
                        label = "eth62:yellow";
                        gpios = <&sgpio_out1 30 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@5 {
+               led-5 {
                        label = "eth62:green";
                        gpios = <&sgpio_out1 30 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@6 {
+               led-6 {
                        label = "eth63:yellow";
                        gpios = <&sgpio_out1 31 0 GPIO_ACTIVE_LOW>;
                        default-state = "off";
                };
-               led@7 {
+               led-7 {
                        label = "eth63:green";
                        gpios = <&sgpio_out1 31 1 GPIO_ACTIVE_LOW>;
                        default-state = "off";
        };
 };
 
-&spi0 {
-       status = "okay";
-       flash@0 {
-               compatible = "jedec,spi-nor";
-               spi-max-frequency = <8000000>;
-               reg = <0>;
-       };
-};
-
 &spi0 {
        status = "okay";
        spi@0 {
 };
 
 &axi {
-       i2c0_imux: i2c0-imux@0 {
+       i2c0_imux: i2c-mux {
                compatible = "i2c-mux-pinctrl";
                #address-cells = <1>;
                #size-cells = <0>;
        pinctrl-2 = <&i2cmux_s31>;
        pinctrl-3 = <&i2cmux_s32>;
        pinctrl-4 = <&i2cmux_pins_i>;
-       i2c_sfp1: i2c_sfp1 {
+       i2c_sfp1: i2c@0 {
                reg = <0x0>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp2: i2c_sfp2 {
+       i2c_sfp2: i2c@1 {
                reg = <0x1>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp3: i2c_sfp3 {
+       i2c_sfp3: i2c@2 {
                reg = <0x2>;
                #address-cells = <1>;
                #size-cells = <0>;
        };
-       i2c_sfp4: i2c_sfp4 {
+       i2c_sfp4: i2c@3 {
                reg = <0x3>;
                #address-cells = <1>;
                #size-cells = <0>;
index a5ab2bc..eeceb5b 100644 (file)
@@ -16,7 +16,7 @@
                stdout-path = &serial0;
        };
 
-       memory {
+       memory@0 {
                reg = <0x0 0x0 0x0 0x40000000>;
        };
 };
index 14d5885..683ac12 100644 (file)
@@ -9,8 +9,8 @@
        compatible = "nvidia,norrin", "nvidia,tegra132", "nvidia,tegra124";
 
        aliases {
-               rtc0 = "/i2c@7000d000/as3722@40";
-               rtc1 = "/rtc@7000e000";
+               rtc0 = &as3722;
+               rtc1 = &tegra_rtc;
                serial0 = &uarta;
        };
 
index 7e24a21..5bcccfe 100644 (file)
                status = "disabled";
        };
 
-       rtc@7000e000 {
+       tegra_rtc: rtc@7000e000 {
                compatible = "nvidia,tegra124-rtc", "nvidia,tegra20-rtc";
                reg = <0x0 0x7000e000 0x0 0x100>;
                interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
index 9ebb736..2e5b6b2 100644 (file)
@@ -25,7 +25,7 @@
                stdout-path = "serial0:115200n8";
        };
 
-       memory {
+       memory@80000000 {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0xc0000000>;
        };
index 47f8268..882b1d1 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a57-pmu";
                interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
index 78cbfdd..f2e2d8d 100644 (file)
                                 */
                                status = "disabled";
                        };
+
+                       crypto@15820000 {
+                               compatible = "nvidia,tegra234-se-aes";
+                               reg = <0x00 0x15820000 0x00 0x10000>;
+                               clocks = <&bpmp TEGRA234_CLK_SE>;
+                               iommus = <&smmu_niso1 TEGRA234_SID_SES_SE1>;
+                               dma-coherent;
+                       };
+
+                       crypto@15840000 {
+                               compatible = "nvidia,tegra234-se-hash";
+                               reg = <0x00 0x15840000 0x00 0x10000>;
+                               clocks = <&bpmp TEGRA234_CLK_SE>;
+                               iommus = <&smmu_niso1 TEGRA234_SID_SES_SE2>;
+                               dma-coherent;
+                       };
                };
 
                pcie@140a0000 {
index 7d40ec5..f63abb4 100644 (file)
@@ -241,6 +241,7 @@ dtb-$(CONFIG_ARCH_QCOM)     += sm8450-sony-xperia-nagara-pdx224.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8550-hdk.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8550-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8550-qrd.dtb
+dtb-$(CONFIG_ARCH_QCOM)        += sm8550-sony-xperia-yodo-pdx234.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8650-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8650-qrd.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += x1e80100-crd.dtb
index 9ffad7d..aba0842 100644 (file)
@@ -91,7 +91,7 @@
 
                compatible = "gpio-leds";
 
-               led@1 {
+               led-1 {
                        label = "apq8016-sbc:green:user1";
                        function = LED_FUNCTION_HEARTBEAT;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                };
 
-               led@2 {
+               led-2 {
                        label = "apq8016-sbc:green:user2";
                        function = LED_FUNCTION_DISK_ACTIVITY;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                };
 
-               led@3 {
+               led-3 {
                        label = "apq8016-sbc:green:user3";
                        function = LED_FUNCTION_DISK_ACTIVITY;
                        color = <LED_COLOR_ID_GREEN>;
                        default-state = "off";
                };
 
-               led@4 {
+               led-4 {
                        label = "apq8016-sbc:green:user4";
                        color = <LED_COLOR_ID_GREEN>;
                        gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
                        default-state = "off";
                };
 
-               led@5 {
+               led-5 {
                        label = "apq8016-sbc:yellow:wlan";
                        function = LED_FUNCTION_WLAN;
                        color = <LED_COLOR_ID_YELLOW>;
                        default-state = "off";
                };
 
-               led@6 {
+               led-6 {
                        label = "apq8016-sbc:blue:bt";
                        function = LED_FUNCTION_BLUETOOTH;
                        color = <LED_COLOR_ID_BLUE>;
index 4e29ade..17ab6c4 100644 (file)
                                      "axi_s_sticky";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
        };
 
index 1b8379b..34e2f80 100644 (file)
@@ -16,7 +16,7 @@
                stdout-path = "serial0";
        };
 
-       memory {
+       memory@40000000 {
                device_type = "memory";
                reg = <0x0 0x40000000 0x0 0x20000000>;
        };
index e5b8975..5d42de8 100644 (file)
                                bias-disable;
                        };
 
+                       serial_5_pins: serial5-state {
+                               pins = "gpio9", "gpio16";
+                               function = "blsp5_uart";
+                               drive-strength = <8>;
+                               bias-disable;
+                       };
+
                        i2c_0_pins: i2c-0-state {
                                pins = "gpio42", "gpio43";
                                function = "blsp1_i2c";
                                       "gpio5", "gpio6", "gpio7",
                                       "gpio8", "gpio10", "gpio11",
                                       "gpio12", "gpio13", "gpio14",
-                                      "gpio15", "gpio16", "gpio17";
+                                      "gpio15", "gpio17";
                                function = "qpic";
                                drive-strength = <8>;
                                bias-disable;
                        status = "disabled";
                };
 
+               blsp1_uart6: serial@78b4000 {
+                       compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
+                       reg = <0x078b4000 0x200>;
+                       interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
+                                <&gcc GCC_BLSP1_AHB_CLK>;
+                       clock-names = "core", "iface";
+                       pinctrl-0 = <&serial_5_pins>;
+                       pinctrl-names = "default";
+                       status = "disabled";
+               };
+
                blsp1_spi1: spi@78b5000 {
                        compatible = "qcom,spi-qup-v2.2.1";
                        #address-cells = <1>;
                                      "ahb",
                                      "axi_m_sticky";
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0: pcie@20000000 {
                                      "axi_m_sticky",
                                      "axi_s_sticky";
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
        };
 
index 3a3e794..7f0c2c1 100644 (file)
@@ -12,7 +12,7 @@
 
 / {
        model = "Longcheer L8150";
-       compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
+       compatible = "longcheer,l8150", "qcom,msm8916";
        chassis-type = "handset";
 
        aliases {
index ac527a3..c11a845 100644 (file)
@@ -9,7 +9,7 @@
 
 / {
        model = "Qualcomm Technologies, Inc. MSM 8916 MTP";
-       compatible = "qcom,msm8916-mtp", "qcom,msm8916-mtp/1", "qcom,msm8916";
+       compatible = "qcom,msm8916-mtp", "qcom,msm8916";
        chassis-type = "handset";
 
        aliases {
index 2937495..4bbbee8 100644 (file)
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&muic_int_default>;
+
+                       usb_con: connector {
+                               compatible = "usb-b-connector";
+                               label = "micro-USB";
+                               type = "micro";
+                       };
                };
        };
 
index 3c49dac..c50f81a 100644 (file)
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&muic_int_default>;
+
+                       usb_con: connector {
+                               compatible = "usb-b-connector";
+                               label = "micro-USB";
+                               type = "micro";
+                       };
                };
        };
 
index c2800ad..5e933fb 100644 (file)
                };
        };
 
+       clk_pwm_backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&clk_pwm 0 100000>;
+
+               enable-gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>;
+
+               brightness-levels = <0 255>;
+               num-interpolated-steps = <255>;
+               default-brightness-level = <128>;
+
+               pinctrl-0 = <&backlight_en_default>;
+               pinctrl-names = "default";
+       };
+
+       clk_pwm: pwm {
+               compatible = "clk-pwm";
+               #pwm-cells = <2>;
+
+               clocks = <&gcc GCC_GP2_CLK>;
+
+               pinctrl-0 = <&backlight_pwm_default>;
+               pinctrl-names = "default";
+       };
+
        gpio-keys {
                compatible = "gpio-keys";
 
                pinctrl-0 = <&motor_en_default>;
                pinctrl-names = "default";
        };
+
+       reg_vdd_tsp_a: regulator-vdd-tsp-a {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_tsp_a";
+               regulator-min-microvolt = <3000000>;
+               regulator-max-microvolt = <3000000>;
+
+               gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+
+               pinctrl-0 = <&tsp_en_default>;
+               pinctrl-names = "default";
+       };
 };
 
 &blsp_i2c1 {
        };
 };
 
+&blsp_i2c5 {
+       status = "okay";
+
+       touchscreen: touchscreen@20 {
+               compatible = "zinitix,bt541";
+               reg = <0x20>;
+
+               interrupts-extended = <&tlmm 13 IRQ_TYPE_EDGE_FALLING>;
+
+               touchscreen-size-x = <540>;
+               touchscreen-size-y = <960>;
+
+               vcca-supply = <&reg_vdd_tsp_a>;
+               vdd-supply = <&pm8916_l6>;
+
+               pinctrl-0 = <&tsp_int_default>;
+               pinctrl-names = "default";
+       };
+};
+
 &blsp_uart2 {
        status = "okay";
 };
 };
 
 &tlmm {
+       backlight_en_default: backlight-en-default-state {
+               pins = "gpio98";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       backlight_pwm_default: backlight-pwm-default-state {
+               pins = "gpio50";
+               function = "gcc_gp2_clk_a";
+       };
+
        fg_alert_default: fg-alert-default-state {
                pins = "gpio121";
                function = "gpio";
                drive-strength = <2>;
                bias-disable;
        };
+
+       tsp_en_default: tsp-en-default-state {
+               pins = "gpio73";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
+
+       tsp_int_default: tsp-int-default-state {
+               pins = "gpio13";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-disable;
+       };
 };
index 4284377..b438fa8 100644 (file)
@@ -5,6 +5,9 @@
 /* SM5504 MUIC instead of SM5502 */
 /delete-node/ &muic;
 
+/* Touchscreen varies depending on model variant */
+/delete-node/ &touchscreen;
+
 &blsp_i2c1 {
        muic: extcon@14 {
                compatible = "siliconmitus,sm5504-muic";
                pinctrl-names = "default";
        };
 };
+
+/* On rossa backlight is controlled with MIPI DCS commands */
+&clk_pwm {
+       status = "disabled";
+};
+
+&clk_pwm_backlight {
+       status = "disabled";
+};
index aa6c394..0c599e7 100644 (file)
 
                pinctrl-0 = <&muic_int_default>;
                pinctrl-names = "default";
+
+               usb_con: connector {
+                       compatible = "usb-b-connector";
+                       label = "micro-USB";
+                       type = "micro";
+               };
        };
 };
 
index f1011bb..5d818fe 100644 (file)
                                snps,hird-threshold = /bits/ 8 <0x00>;
 
                                maximum-speed = "high-speed";
+
+                               usb-role-switch;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_dwc3_hs: endpoint {
+                                               };
+                                       };
+                               };
                        };
                };
 
index 1601e46..8d2cb6f 100644 (file)
                                                "cfg",
                                                "bus_master",
                                                "bus_slave";
+
+                               pcie@0 {
+                                       device_type = "pci";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
                        };
 
                        pcie1: pcie@608000 {
                                                "cfg",
                                                "bus_master",
                                                "bus_slave";
+
+                               pcie@0 {
+                                       device_type = "pci";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
                        };
 
                        pcie2: pcie@610000 {
                                                "cfg",
                                                "bus_master",
                                                "bus_slave";
+
+                               pcie@0 {
+                                       device_type = "pci";
+                                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                                       bus-range = <0x01 0xff>;
+
+                                       #address-cells = <3>;
+                                       #size-cells = <2>;
+                                       ranges;
+                               };
                        };
                };
 
index 876c692..d8cc0d7 100644 (file)
        gpio-keys {
                compatible = "gpio-keys";
                label = "Side buttons";
+               pinctrl-0 = <&focus_n &snapshot_n &vol_down_n &vol_up_n>;
                pinctrl-names = "default";
-               pinctrl-0 = <&vol_down_n &focus_n &snapshot_n>;
-               button-vol-down {
-                       label = "Volume Down";
-                       gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <KEY_VOLUMEDOWN>;
-                       wakeup-source;
+               button-camera-focus {
+                       label = "Camera Focus";
+                       gpios = <&pm8998_gpios 8 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA_FOCUS>;
                        debounce-interval = <15>;
                };
 
                button-camera-snapshot {
                        label = "Camera Snapshot";
                        gpios = <&pm8998_gpios 7 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
                        linux,code = <KEY_CAMERA>;
                        debounce-interval = <15>;
                };
 
-               button-camera-focus {
-                       label = "Camera Focus";
-                       gpios = <&pm8998_gpios 8 GPIO_ACTIVE_LOW>;
-                       linux,input-type = <EV_KEY>;
-                       linux,code = <KEY_CAMERA_FOCUS>;
+               button-vol-down {
+                       label = "Volume Down";
+                       gpios = <&pm8998_gpios 5 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+               };
+
+               button-vol-up {
+                       label = "Volume Up";
+                       gpios = <&pm8998_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
                        debounce-interval = <15>;
                };
        };
                qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
        };
 
+       vol_up_n: vol-up-n-state {
+               pins = "gpio6";
+               function = PMIC_GPIO_FUNC_NORMAL;
+               bias-pull-up;
+               input-enable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
+       };
+
        focus_n: focus-n-state {
                pins = "gpio7";
                function = PMIC_GPIO_FUNC_NORMAL;
        };
 };
 
-&pm8998_resin {
-       linux,code = <KEY_VOLUMEUP>;
+&pmi8998_lpg {
+       qcom,power-source = <1>;
+
        status = "okay";
+
+       multi-led {
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_STATUS;
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               led@3 {
+                       reg = <3>;
+                       color = <LED_COLOR_ID_BLUE>;
+               };
+
+               led@4 {
+                       reg = <4>;
+                       color = <LED_COLOR_ID_GREEN>;
+               };
+
+               led@5 {
+                       reg = <5>;
+                       color = <LED_COLOR_ID_RED>;
+               };
+       };
 };
 
 &qusb2phy {
index 4dfe2d0..d795b2b 100644 (file)
                        power-domains = <&gcc PCIE_0_GDSC>;
                        iommu-map = <0x100 &anoc1_smmu 0x1480 1>;
                        perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie_phy: phy@1c06000 {
index 11158c2..6de6ed5 100644 (file)
                };
 
                pm6150_vbus: usb-vbus-regulator@1100 {
-                       compatible = "qcom,pm6150-vbus-reg,
-                                     qcom,pm8150b-vbus-reg";
+                       compatible = "qcom,pm6150-vbus-reg",
+                                    "qcom,pm8150b-vbus-reg";
                        reg = <0x1100>;
                        status = "disabled";
                };
 
                pm6150_typec: typec@1500 {
-                       compatible = "qcom,pm6150-typec,
-                                     qcom,pm8150b-typec";
+                       compatible = "qcom,pm6150-typec",
+                                    "qcom,pm8150b-typec";
                        reg = <0x1500>, <0x1700>;
                        interrupts = <0x0 0x15 0x00 IRQ_TYPE_EDGE_RISING>,
                                     <0x0 0x15 0x01 IRQ_TYPE_EDGE_BOTH>,
index d13a1ab..0fce452 100644 (file)
                        status = "disabled";
                };
 
+               pm6150l_lpg: pwm {
+                       compatible = "qcom,pm6150l-lpg", "qcom,pm8150l-lpg";
+
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       #pwm-cells = <2>;
+
+                       status = "disabled";
+               };
+
                pm6150l_wled: leds@d800 {
                        compatible = "qcom,pm6150l-wled";
                        reg = <0xd800>, <0xd900>;
index 89beac8..106110a 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
        };
 
                        clock-output-names = "usb3_phy_pipe_clk_src";
 
                        #phy-cells = <0>;
+                       orientation-switch;
 
                        qcom,tcsr-reg = <&tcsr_regs 0xb244>;
 
                        status = "disabled";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usb_qmpphy_out: endpoint {
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usb_qmpphy_usb_ss_in: endpoint {
+                                               remote-endpoint = <&usb_dwc3_ss>;
+                                       };
+                               };
+                       };
                };
 
                system_noc: interconnect@1880000 {
                                snps,usb3_lpm_capable;
                                maximum-speed = "super-speed";
                                dr_mode = "otg";
+                               usb-role-switch;
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               usb_dwc3_hs: endpoint {
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               usb_dwc3_ss: endpoint {
+                                                       remote-endpoint = <&usb_qmpphy_usb_ss_in>;
+                                               };
+                                       };
+                               };
                        };
                };
 
                        compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw";
                        reg = <0x0 0x0f521000 0x0 0x1000>;
                        reg-names = "freq-domain0";
-                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&lmh_cluster 0>;
                        interrupt-names = "dcvsh-irq-0";
                        clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
                        clock-names = "xo", "alternate";
                        #freq-domain-cells = <1>;
                        #clock-cells = <1>;
                };
+
+               lmh_cluster: lmh@f550800 {
+                       compatible = "qcom,qcm2290-lmh", "qcom,sm8150-lmh";
+                       reg = <0x0 0x0f550800 0x0 0x400>;
+                       interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
+                       cpus = <&CPU0>;
+                       qcom,lmh-temp-arm-millicelsius = <65000>;
+                       qcom,lmh-temp-low-millicelsius = <94500>;
+                       qcom,lmh-temp-high-millicelsius = <95000>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
        };
 
        thermal-zones {
index 4ff9fc2..f343270 100644 (file)
@@ -77,6 +77,8 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
+               orientation-gpios = <&tlmm 140 GPIO_ACTIVE_HIGH>;
+
                connector@0 {
                        compatible = "usb-c-connector";
                        reg = <0>;
index e4bfad5..47ca2d0 100644 (file)
@@ -9,7 +9,9 @@
 #define PM7250B_SID 8
 #define PM7250B_SID1 9
 
+#include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 #include "sc7280.dtsi"
 #include "pm7250b.dtsi"
                serial0 = &uart5;
        };
 
+       pm8350c_pwm_backlight: backlight {
+               compatible = "pwm-backlight";
+               pwms = <&pm8350c_pwm 3 65535>;
+               enable-gpios = <&pm8350c_gpios 7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&pmic_lcd_bl_en>;
+               pinctrl-names = "default";
+       };
+
        chosen {
                stdout-path = "serial0:115200n8";
        };
 
+       lcd_disp_bias: regulator-lcd-disp-bias {
+               compatible = "regulator-fixed";
+               regulator-name = "lcd_disp_bias";
+               regulator-min-microvolt = <5500000>;
+               regulator-max-microvolt = <5500000>;
+               gpio = <&pm7250b_gpios 2 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               pinctrl-0 = <&lcd_disp_bias_en>;
+               pinctrl-names = "default";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               pinctrl-0 = <&key_vol_up_default>;
+               pinctrl-names = "default";
+
+               key-volume-up {
+                       label = "Volume_up";
+                       gpios = <&pm7325_gpios 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_VOLUMEUP>;
+                       wakeup-source;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+               };
+       };
+
        reserved-memory {
                xbl_mem: xbl@80700000 {
                        reg = <0x0 0x80700000 0x0 0x100000>;
                vdd-l14-l16-supply = <&vreg_s8b_1p272>;
 
                vreg_s1b_1p872: smps1 {
+                       regulator-name = "vreg_s1b_1p872";
                        regulator-min-microvolt = <1840000>;
                        regulator-max-microvolt = <2040000>;
                };
 
                vreg_s2b_0p876: smps2 {
+                       regulator-name = "vreg_s2b_0p876";
                        regulator-min-microvolt = <570070>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7b_0p972: smps7 {
+                       regulator-name = "vreg_s7b_0p972";
                        regulator-min-microvolt = <535000>;
                        regulator-max-microvolt = <1120000>;
                };
 
                vreg_s8b_1p272: smps8 {
+                       regulator-name = "vreg_s8b_1p272";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
                };
 
                vreg_l1b_0p912: ldo1 {
+                       regulator-name = "vreg_l1b_0p912";
                        regulator-min-microvolt = <825000>;
                        regulator-max-microvolt = <925000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2b_3p072: ldo2 {
+                       regulator-name = "vreg_l2b_3p072";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3b_0p504: ldo3 {
+                       regulator-name = "vreg_l3b_0p504";
                        regulator-min-microvolt = <312000>;
                        regulator-max-microvolt = <910000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4b_0p752: ldo4 {
+                       regulator-name = "vreg_l4b_0p752";
                        regulator-min-microvolt = <752000>;
                        regulator-max-microvolt = <820000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                reg_l5b_0p752: ldo5 {
+                       regulator-name = "reg_l5b_0p752";
                        regulator-min-microvolt = <552000>;
                        regulator-max-microvolt = <832000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
                        regulator-min-microvolt = <1140000>;
                        regulator-max-microvolt = <1260000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7b_2p952: ldo7 {
+                       regulator-name = "vreg_l7b_2p952";
                        regulator-min-microvolt = <2400000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8b_0p904: ldo8 {
+                       regulator-name = "vreg_l8b_0p904";
                        regulator-min-microvolt = <870000>;
                        regulator-max-microvolt = <970000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11b_1p504: ldo11 {
+                       regulator-name = "vreg_l11b_1p504";
                        regulator-min-microvolt = <1504000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12b_0p751: ldo12 {
+                       regulator-name = "vreg_l12b_0p751";
                        regulator-min-microvolt = <751000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13b_0p53: ldo13 {
+                       regulator-name = "vreg_l13b_0p53";
                        regulator-min-microvolt = <530000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l14b_1p08: ldo14 {
+                       regulator-name = "vreg_l14b_1p08";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l15b_0p765: ldo15 {
+                       regulator-name = "vreg_l15b_0p765";
                        regulator-min-microvolt = <765000>;
                        regulator-max-microvolt = <1020000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l16b_1p1: ldo16 {
+                       regulator-name = "vreg_l16b_1p1";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l17b_1p7: ldo17 {
+                       regulator-name = "vreg_l17b_1p7";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l18b_1p8: ldo18 {
+                       regulator-name = "vreg_l18b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l19b_1p8: ldo19 {
+                       regulator-name = "vreg_l19b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                vdd-bob-supply = <&vph_pwr>;
 
                vreg_s1c_2p19: smps1 {
+                       regulator-name = "vreg_s1c_2p19";
                        regulator-min-microvolt = <2190000>;
                        regulator-max-microvolt = <2210000>;
                };
 
                vreg_s2c_0p752: smps2 {
+                       regulator-name = "vreg_s2c_0p752";
                        regulator-min-microvolt = <750000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s5c_0p752: smps5 {
+                       regulator-name = "vreg_s5c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7c_0p752: smps7 {
+                       regulator-name = "vreg_s7c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s9c_1p084: smps9 {
+                       regulator-name = "vreg_s9c_1p084";
                        regulator-min-microvolt = <1010000>;
                        regulator-max-microvolt = <1170000>;
                };
 
                vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2c_1p62: ldo2 {
+                       regulator-name = "vreg_l2c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3c_2p8: ldo3 {
+                       regulator-name = "vreg_l3c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3540000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4c_1p62: ldo4 {
+                       regulator-name = "vreg_l4c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5c_1p62: ldo5 {
+                       regulator-name = "vreg_l5c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6c_2p96: ldo6 {
+                       regulator-name = "vreg_l6c_2p96";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8c_1p62: ldo8 {
+                       regulator-name = "vreg_l8c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <35440000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10c_0p88: ldo10 {
+                       regulator-name = "vreg_l10c_0p88";
                        regulator-min-microvolt = <720000>;
                        regulator-max-microvolt = <1050000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11c_2p8: ldo11 {
+                       regulator-name = "vreg_l11c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12c_1p65: ldo12 {
+                       regulator-name = "vreg_l12c_1p65";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13c_2p7: ldo13 {
+                       regulator-name = "vreg_l13c_2p7";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_bob_3p296: bob {
+                       regulator-name = "vreg_bob_3p296";
                        regulator-min-microvolt = <3008000>;
                        regulator-max-microvolt = <3960000>;
                };
        };
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi {
+       vdda-supply = <&vreg_l6b_1p2>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "novatek,nt36672e";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 44 GPIO_ACTIVE_HIGH>;
+
+               vddi-supply = <&vreg_l8c_1p62>;
+               avdd-supply = <&lcd_disp_bias>;
+               avee-supply = <&lcd_disp_bias>;
+
+               backlight = <&pm8350c_pwm_backlight>;
+
+               port {
+                       panel0_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel0_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi_phy {
+       vdds-supply = <&vreg_l10c_0p88>;
+       status = "okay";
+};
+
+&pm7250b_gpios {
+       lcd_disp_bias_en: lcd-disp-bias-en-state {
+               pins = "gpio2";
+               function = "func1";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               input-disable;
+               output-enable;
+               power-source = <0>;
+       };
+};
+
+&pm8350c_gpios {
+       pmic_lcd_bl_en: pmic-lcd-bl-en-state {
+               pins = "gpio7";
+               function = "normal";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               output-low;
+               power-source = <0>;
+       };
+
+       pmic_lcd_bl_pwm: pmic-lcd-bl-pwm-state {
+               pins = "gpio8";
+               function = "func1";
+               bias-disable;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+               output-low;
+               power-source = <0>;
+       };
+};
+
+&pm7325_gpios {
+       key_vol_up_default: key-vol-up-state {
+               pins = "gpio6";
+               function = "normal";
+               input-enable;
+               bias-pull-up;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
+       };
+};
+
 &pm8350c_pwm {
+       pinctrl-0 = <&pmic_lcd_bl_pwm>;
+       pinctrl-names = "default";
        status = "okay";
 
        multi-led {
        };
 };
 
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEDOWN>;
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/qcm6490/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcm6490/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcm6490/modem.mbn";
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/qcm6490/wpss.mbn";
+       status = "okay";
+};
+
 &sdhc_1 {
        non-removable;
        no-sd;
index 1065540..a22b450 100644 (file)
@@ -62,7 +62,7 @@
                vddrf-supply = <&vreg_l1_1p3>;
                vddch0-supply = <&vdd_ch0_3p3>;
 
-               local-bd-address = [ 02 00 00 00 5a ad ];
+               local-bd-address = [ 00 00 00 00 00 00 ];
 
                max-speed = <3200000>;
        };
index a05d023..ac451f3 100644 (file)
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
        };
 
index 97824c7..a085ff5 100644 (file)
@@ -17,7 +17,6 @@
 #include "pmk8350.dtsi"
 
 /delete-node/ &ipa_fw_mem;
-/delete-node/ &remoteproc_mpss;
 /delete-node/ &rmtfs_mem;
 /delete-node/ &adsp_mem;
 /delete-node/ &cdsp_mem;
                stdout-path = "serial0:115200n8";
        };
 
+       dp-connector {
+               compatible = "dp-connector";
+               label = "DP";
+               type = "mini";
+
+               hpd-gpios = <&tlmm 60 GPIO_ACTIVE_HIGH>;
+
+               port {
+                       dp_connector_in: endpoint {
+                               remote-endpoint = <&mdss_edp_out>;
+                       };
+               };
+       };
+
        reserved-memory {
                xbl_mem: xbl@80700000 {
                        reg = <0x0 0x80700000 0x0 0x100000>;
                };
        };
 
+       pmic-glink {
+               compatible = "qcom,qcm6490-pmic-glink", "qcom,pmic-glink";
+
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&redriver_usb_con_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       pmic_glink_sbu_in: endpoint {
+                                               remote-endpoint = <&redriver_usb_con_sbu>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        vph_pwr: vph-pwr-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vph_pwr";
                vdd-l14-l16-supply = <&vreg_s8b_1p272>;
 
                vreg_s1b_1p872: smps1 {
+                       regulator-name = "vreg_s1b_1p872";
                        regulator-min-microvolt = <1840000>;
                        regulator-max-microvolt = <2040000>;
                };
 
                vreg_s2b_0p876: smps2 {
+                       regulator-name = "vreg_s2b_0p876";
                        regulator-min-microvolt = <570070>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7b_0p972: smps7 {
+                       regulator-name = "vreg_s7b_0p972";
                        regulator-min-microvolt = <535000>;
                        regulator-max-microvolt = <1120000>;
                };
 
                vreg_s8b_1p272: smps8 {
+                       regulator-name = "vreg_s8b_1p272";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1500000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_RET>;
                };
 
                vreg_l1b_0p912: ldo1 {
+                       regulator-name = "vreg_l1b_0p912";
                        regulator-min-microvolt = <825000>;
                        regulator-max-microvolt = <925000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2b_3p072: ldo2 {
+                       regulator-name = "vreg_l2b_3p072";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3b_0p504: ldo3 {
+                       regulator-name = "vreg_l3b_0p504";
                        regulator-min-microvolt = <312000>;
                        regulator-max-microvolt = <910000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4b_0p752: ldo4 {
+                       regulator-name = "vreg_l4b_0p752";
                        regulator-min-microvolt = <752000>;
                        regulator-max-microvolt = <820000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                reg_l5b_0p752: ldo5 {
+                       regulator-name = "reg_l5b_0p752";
                        regulator-min-microvolt = <552000>;
                        regulator-max-microvolt = <832000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6b_1p2: ldo6 {
+                       regulator-name = "vreg_l6b_1p2";
                        regulator-min-microvolt = <1140000>;
                        regulator-max-microvolt = <1260000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7b_2p952: ldo7 {
-                       regulator-min-microvolt = <2400000>;
-                       regulator-max-microvolt = <3544000>;
+                       regulator-name = "vreg_l7b_2p952";
+                       regulator-min-microvolt = <2952000>;
+                       regulator-max-microvolt = <2952000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8b_0p904: ldo8 {
+                       regulator-name = "vreg_l8b_0p904";
                        regulator-min-microvolt = <870000>;
                        regulator-max-microvolt = <970000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9b_1p2: ldo9 {
+                       regulator-name = "vreg_l9b_1p2";
                        regulator-min-microvolt = <1200000>;
-                       regulator-max-microvolt = <1304000>;
+                       regulator-max-microvolt = <1200000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11b_1p504: ldo11 {
+                       regulator-name = "vreg_l11b_1p504";
                        regulator-min-microvolt = <1504000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12b_0p751: ldo12 {
+                       regulator-name = "vreg_l12b_0p751";
                        regulator-min-microvolt = <751000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13b_0p53: ldo13 {
+                       regulator-name = "vreg_l13b_0p53";
                        regulator-min-microvolt = <530000>;
                        regulator-max-microvolt = <824000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l14b_1p08: ldo14 {
+                       regulator-name = "vreg_l14b_1p08";
                        regulator-min-microvolt = <1080000>;
                        regulator-max-microvolt = <1304000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l15b_0p765: ldo15 {
+                       regulator-name = "vreg_l15b_0p765";
                        regulator-min-microvolt = <765000>;
                        regulator-max-microvolt = <1020000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l16b_1p1: ldo16 {
+                       regulator-name = "vreg_l16b_1p1";
                        regulator-min-microvolt = <1100000>;
                        regulator-max-microvolt = <1300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l17b_1p7: ldo17 {
+                       regulator-name = "vreg_l17b_1p7";
                        regulator-min-microvolt = <1700000>;
                        regulator-max-microvolt = <1900000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l18b_1p8: ldo18 {
+                       regulator-name = "vreg_l18b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l19b_1p8: ldo19 {
+                       regulator-name = "vreg_l19b_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                vdd-bob-supply = <&vph_pwr>;
 
                vreg_s1c_2p19: smps1 {
+                       regulator-name = "vreg_s1c_2p19";
                        regulator-min-microvolt = <2190000>;
                        regulator-max-microvolt = <2210000>;
                };
 
                vreg_s2c_0p752: smps2 {
+                       regulator-name = "vreg_s2c_0p752";
                        regulator-min-microvolt = <750000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s5c_0p752: smps5 {
+                       regulator-name = "vreg_s5c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <1050000>;
                };
 
                vreg_s7c_0p752: smps7 {
+                       regulator-name = "vreg_s7c_0p752";
                        regulator-min-microvolt = <465000>;
                        regulator-max-microvolt = <800000>;
                };
 
                vreg_s9c_1p084: smps9 {
+                       regulator-name = "vreg_s9c_1p084";
                        regulator-min-microvolt = <1010000>;
                        regulator-max-microvolt = <1170000>;
                };
 
                vreg_l1c_1p8: ldo1 {
+                       regulator-name = "vreg_l1c_1p8";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l2c_1p62: ldo2 {
+                       regulator-name = "vreg_l2c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <1980000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l3c_2p8: ldo3 {
+                       regulator-name = "vreg_l3c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3540000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l4c_1p62: ldo4 {
+                       regulator-name = "vreg_l4c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l5c_1p62: ldo5 {
+                       regulator-name = "vreg_l5c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <3300000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l6c_2p96: ldo6 {
+                       regulator-name = "vreg_l6c_2p96";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l7c_3p0: ldo7 {
+                       regulator-name = "vreg_l7c_3p0";
                        regulator-min-microvolt = <3000000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l8c_1p62: ldo8 {
+                       regulator-name = "vreg_l8c_1p62";
                        regulator-min-microvolt = <1620000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l9c_2p96: ldo9 {
+                       regulator-name = "vreg_l9c_2p96";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <35440000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l10c_0p88: ldo10 {
+                       regulator-name = "vreg_l10c_0p88";
                        regulator-min-microvolt = <720000>;
                        regulator-max-microvolt = <1050000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l11c_2p8: ldo11 {
+                       regulator-name = "vreg_l11c_2p8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l12c_1p65: ldo12 {
+                       regulator-name = "vreg_l12c_1p65";
                        regulator-min-microvolt = <1650000>;
                        regulator-max-microvolt = <2000000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_l13c_2p7: ldo13 {
+                       regulator-name = "vreg_l13c_2p7";
                        regulator-min-microvolt = <2700000>;
                        regulator-max-microvolt = <3544000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
                vreg_bob_3p296: bob {
+                       regulator-name = "vreg_bob_3p296";
                        regulator-min-microvolt = <3008000>;
                        regulator-max-microvolt = <3960000>;
                };
                           <GCC_WPSS_RSCP_CLK>;
 };
 
+&i2c1 {
+       status = "okay";
+
+       typec-mux@1c {
+               compatible = "onnn,nb7vpq904m";
+               reg = <0x1c>;
+
+               vcc-supply = <&vreg_l18b_1p8>;
+
+               retimer-switch;
+               orientation-switch;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               redriver_usb_con_ss: endpoint {
+                                       remote-endpoint = <&pmic_glink_ss_in>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+
+                               redriver_phy_con_ss: endpoint {
+                                       remote-endpoint = <&usb_dp_qmpphy_out>;
+                                       data-lanes = <0 1 2 3>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               redriver_usb_con_sbu: endpoint {
+                                       remote-endpoint = <&pmic_glink_sbu_in>;
+                               };
+                       };
+               };
+       };
+};
+
+&mdss {
+       status = "okay";
+};
+
+&mdss_dp {
+       status = "okay";
+};
+
+&mdss_dp_out {
+       data-lanes = <0 1>;
+       remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+};
+
+&mdss_edp {
+       status = "okay";
+};
+
+&mdss_edp_out {
+       data-lanes = <0 1 2 3>;
+       link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+       remote-endpoint = <&dp_connector_in>;
+};
+
+&mdss_edp_phy {
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
 
+&remoteproc_adsp {
+       firmware-name = "qcom/qcs6490/adsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/qcs6490/cdsp.mbn";
+       status = "okay";
+};
+
+&remoteproc_mpss {
+       firmware-name = "qcom/qcs6490/modem.mdt";
+       status = "okay";
+};
+
+&remoteproc_wpss {
+       firmware-name = "qcom/qcs6490/wpss.mbn";
+       status = "okay";
+};
+
 &tlmm {
        gpio-reserved-ranges = <32 2>, /* ADSP */
                               <48 4>; /* NFC */
 };
 
 &usb_1_dwc3 {
-       dr_mode = "peripheral";
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_dwc3_ss {
+       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
 };
 
 &usb_1_hsphy {
        vdda-phy-supply = <&vreg_l6b_1p2>;
        vdda-pll-supply = <&vreg_l1b_0p912>;
 
+       orientation-switch;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&redriver_phy_con_ss>;
+};
+
+&usb_dp_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
+};
+
+&usb_dp_qmpphy_dp_in {
+       remote-endpoint = <&mdss_dp_out>;
+};
+
+&ufs_mem_hc {
+       reset-gpios = <&tlmm 175 GPIO_ACTIVE_LOW>;
+       vcc-supply = <&vreg_l7b_2p952>;
+       vcc-max-microamp = <800000>;
+       vccq-supply = <&vreg_l9b_1p2>;
+       vccq-max-microamp = <900000>;
+       vccq2-supply = <&vreg_l9b_1p2>;
+       vccq2-max-microamp = <900000>;
+
+       status = "okay";
+};
+
+&ufs_mem_phy {
+       vdda-phy-supply = <&vreg_l10c_0p88>;
+       vdda-pll-supply = <&vreg_l6b_1p2>;
+
        status = "okay";
 };
 
 &wifi {
        memory-region = <&wlan_fw_mem>;
 };
+
+/* PINCTRL - ADDITIONS TO NODES IN PARENT DEVICE TREE FILES */
+
+&edp_hot_plug_det {
+       function = "gpio";
+       bias-disable;
+};
index 832f472..f2a5e2e 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
index 6e9dd03..bb51914 100644 (file)
        status = "okay";
 };
 
+&pm4125_typec {
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "dual";
+               data-role = "dual";
+               self-powered;
+
+               typec-power-opmode = "default";
+               pd-disable;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               pm4125_hs_in: endpoint {
+                                       remote-endpoint = <&usb_dwc3_hs>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               pm4125_ss_in: endpoint {
+                                       remote-endpoint = <&usb_qmpphy_out>;
+                               };
+                       };
+               };
+       };
+};
+
+&pm4125_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <500000>;
+       status = "okay";
+};
+
 &qupv3_id_0 {
        status = "okay";
 };
        status = "okay";
 };
 
-&usb_qmpphy {
-       vdda-phy-supply = <&pm4125_l12>;
-       vdda-pll-supply = <&pm4125_l13>;
-       status = "okay";
-};
-
-&usb_dwc3 {
-       dr_mode = "host";
+&usb_dwc3_hs {
+       remote-endpoint = <&pm4125_hs_in>;
 };
 
 &usb_hsphy {
        status = "okay";
 };
 
+&usb_qmpphy {
+       vdda-phy-supply = <&pm4125_l12>;
+       vdda-pll-supply = <&pm4125_l13>;
+       status = "okay";
+};
+
+&usb_qmpphy_out {
+       remote-endpoint = <&pm4125_ss_in>;
+};
+
 &wifi {
        vdd-0.8-cx-mx-supply = <&pm4125_l7>;
        vdd-1.8-xo-supply = <&pm4125_l13>;
        vdd-1.3-rfa-supply = <&pm4125_l10>;
        vdd-3.3-ch0-supply = <&pm4125_l22>;
        qcom,ath10k-calibration-variant = "Thundercomm_RB1";
+       firmware-name = "qcm2290";
        status = "okay";
 };
 
index 696d6d4..2c39bb1 100644 (file)
        vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
        vdd-3.3-ch0-supply = <&vreg_l23a_3p3>;
        qcom,ath10k-calibration-variant = "Thundercomm_RB2";
+       firmware-name = "qrb4210";
 
        status = "okay";
 };
index b2cf2c9..9e9c7f8 100644 (file)
 
                vreg_l13c_2p96: ldo13 {
                        regulator-name = "vreg_l13c_2p96";
-                       regulator-min-microvolt = <2504000>;
+                       regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <2960000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
index 231cea1..31de735 100644 (file)
                phy-names = "pciephy";
 
                status = "disabled";
+
+               pcie@0 {
+                       device_type = "pci";
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       bus-range = <0x01 0xff>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+               };
        };
 
        pcie0_phy: phy@1c04000 {
                phy-names = "pciephy";
 
                status = "disabled";
+
+               pcie@0 {
+                       device_type = "pci";
+                       reg = <0x0 0x0 0x0 0x0 0x0>;
+                       bus-range = <0x01 0xff>;
+
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       ranges;
+               };
        };
 
        pcie1_phy: phy@1c14000 {
index 5260c63..8513be2 100644 (file)
@@ -1167,6 +1167,7 @@ ap_spi_fp: &spi10 {
 };
 
 &pm6150l_gpios {
+       status = "disabled"; /* No GPIOs are consumed or configured */
        gpio-line-names = "AP_SUSPEND",
                          "",
                          "",
index 2b481e2..4774a85 100644 (file)
                        compatible = "qcom,sc7180-qmp-ufs-phy",
                                     "qcom,sm7150-qmp-ufs-phy";
                        reg = <0 0x01d87000 0 0x1000>;
-                       clocks = <&gcc GCC_UFS_MEM_CLKREF_CLK>,
-                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>;
-                       clock-names = "ref", "ref_aux";
+                       clocks = <&rpmhcc RPMH_CXO_CLK>,
+                                <&gcc GCC_UFS_PHY_PHY_AUX_CLK>,
+                                <&gcc GCC_UFS_MEM_CLKREF_CLK>;
+                       clock-names = "ref",
+                                     "ref_aux",
+                                     "qref";
                        power-domains = <&gcc UFS_PHY_GDSC>;
                        resets = <&ufs_mem_hc 0>;
                        reset-names = "ufsphy";
                        compatible = "qcom,sc7180-dcc", "qcom,dcc";
                        reg = <0x0 0x010a2000 0x0 0x1000>,
                              <0x0 0x010ae000 0x0 0x2000>;
+                       status = "disabled";
                };
 
                stm@6002000 {
index 41f51d3..fc9ec36 100644 (file)
                                    <0x100 &apps_smmu 0x1c81 0x1>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                <0 0>,
                                <0 0>,
                                <0 0>;
+                       qcom,ice = <&ice>;
+
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               ice: crypto@1d88000 {
+                       compatible = "qcom,sc7280-inline-crypto-engine",
+                                    "qcom,inline-crypto-engine";
+                       reg = <0 0x01d88000 0 0x8000>;
+                       clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+               };
+
                cryptobam: dma-controller@1dc4000 {
                        compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
                        reg = <0x0 0x01dc4000 0x0 0x28000>;
                                                opp-hz = /bits/ 64 <506666667>;
                                                required-opps = <&rpmhpd_opp_nom>;
                                        };
+
+                                       opp-608000000 {
+                                               opp-hz = /bits/ 64 <608000000>;
+                                               required-opps = <&rpmhpd_opp_turbo>;
+                                       };
                                };
                        };
 
index 0c22f3e..6af9911 100644 (file)
@@ -51,6 +51,8 @@
 
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 58 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
                        regulator-min-microvolt = <1800000>;
                        regulator-max-microvolt = <1800000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
                };
 
                vreg_l10e_2p9: ldo10 {
                        regulator-min-microvolt = <2904000>;
                        regulator-max-microvolt = <2904000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+                                                  RPMH_REGULATOR_MODE_HPM>;
+                       regulator-allow-set-load;
                };
 
                vreg_l16e_3p0: ldo16 {
 
        zap-shader {
                memory-region = <&gpu_mem>;
-               firmware-name = "qcom/sc8180x/qcdxkmsuc8180.mbn";
+               firmware-name = "qcom/sc8180x/LENOVO/82AK/qcdxkmsuc8180.mbn";
        };
 };
 
 &i2c1 {
        clock-frequency = <100000>;
 
-       pinctrl-0 = <&i2c1_active>, <&i2c1_hid_active>;
+       pinctrl-0 = <&i2c1_active>;
        pinctrl-names = "default";
 
        status = "okay";
 
-       hid@10 {
+       touchscreen@10 {
                compatible = "hid-over-i2c";
                reg = <0x10>;
                hid-descr-addr = <0x1>;
 
                interrupts-extended = <&tlmm 122 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&ts_int_default>;
+               pinctrl-names = "default";
        };
 };
 
 &i2c7 {
-       clock-frequency = <100000>;
+       clock-frequency = <1000000>;
 
-       pinctrl-0 = <&i2c7_active>, <&i2c7_hid_active>;
+       pinctrl-0 = <&i2c7_active>;
        pinctrl-names = "default";
 
        status = "okay";
 
-       hid@5 {
+       keyboard@5 {
                compatible = "hid-over-i2c";
                reg = <0x5>;
                hid-descr-addr = <0x20>;
 
                interrupts-extended = <&tlmm 37 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&kb_int_default>;
+               pinctrl-names = "default";
        };
 
-       hid@2c {
+       touchpad@2c {
                compatible = "hid-over-i2c";
                reg = <0x2c>;
                hid-descr-addr = <0x20>;
 
                interrupts-extended = <&tlmm 24 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-0 = <&tp_int_default>;
+               pinctrl-names = "default";
        };
 };
 
                drive-strength = <2>;
        };
 
-       i2c1_hid_active: i2c1-hid-active-state {
-               pins = "gpio122";
-               function = "gpio";
-
-               bias-pull-up;
-               drive-strength = <2>;
-       };
-
        i2c7_active: i2c7-active-state {
                pins = "gpio98", "gpio99";
                function = "qup7";
                drive-strength = <2>;
        };
 
-       i2c7_hid_active: i2c7-hid-active-state {
-               pins = "gpio37", "gpio24";
+       kb_int_default: kb-int-default-state {
+               pins = "gpio37";
                function = "gpio";
 
                bias-pull-up;
                };
        };
 
+       tp_int_default: tp-int-default-state {
+               pins = "gpio24";
+               function = "gpio";
+
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
+       ts_int_default: ts-int-default-state {
+               pins = "gpio122";
+               function = "gpio";
+
+               bias-pull-up;
+               drive-strength = <2>;
+       };
+
        usbprim_sbu_default: usbprim-sbu-state {
                oe-n-pins {
                        pins = "gpio152";
index 053f786..0677123 100644 (file)
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie3_phy: phy@1c0c000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c16000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2_phy: phy@1c1c000 {
 
                gpu: gpu@2c00000 {
                        compatible = "qcom,adreno-680.1", "qcom,adreno";
-                       #stream-id-cells = <16>;
 
                        reg = <0 0x02c00000 0 0x40000>;
                        reg-names = "kgsl_3d0_reg_memory";
                                power-domains = <&rpmhpd SC8180X_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>,
                                reg = <0 0xae90000 0 0x200>,
                                      <0 0xae90200 0 0x200>,
                                      <0 0xae90400 0 0x600>,
-                                     <0 0xae90a00 0 0x400>;
+                                     <0 0xae90a00 0 0x400>,
+                                     <0 0xae91000 0 0x400>;
                                interrupt-parent = <&mdss>;
                                interrupts = <12>;
                                clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
                                reg = <0 0xae98000 0 0x200>,
                                      <0 0xae98200 0 0x200>,
                                      <0 0xae98400 0 0x600>,
-                                     <0 0xae98a00 0 0x400>;
+                                     <0 0xae98a00 0 0x400>,
+                                     <0 0xae99000 0 0x400>;
                                interrupt-parent = <&mdss>;
                                interrupts = <13>;
                                clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
index 15ae94c..e937732 100644 (file)
 
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 166 GPIO_ACTIVE_HIGH>,
+                                   <&tlmm 49 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
                        regulator-always-on;
                };
 
+               vreg_l1b: ldo1 {
+                       regulator-name = "vreg_l1b";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l3b: ldo3 {
                        regulator-name = "vreg_l3b";
                        regulator-min-microvolt = <1200000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l8c: ldo8 {
+                       regulator-name = "vreg_l8c";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l12c: ldo12 {
                        regulator-name = "vreg_l12c";
                        regulator-min-microvolt = <1800000>;
                vdd-l6-l9-l10-supply = <&vreg_s12b>;
                vdd-l8-supply = <&vreg_s12b>;
 
+               vreg_l2d: ldo2 {
+                       regulator-name = "vreg_l2d";
+                       regulator-min-microvolt = <3072000>;
+                       regulator-max-microvolt = <3072000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l3d: ldo3 {
                        regulator-name = "vreg_l3d";
                        regulator-min-microvolt = <1200000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
 
+               vreg_l8d: ldo8 {
+                       regulator-name = "vreg_l8d";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
                vreg_l9d: ldo9 {
                        regulator-name = "vreg_l9d";
                        regulator-min-microvolt = <912000>;
                        regulator-max-microvolt = <912000>;
                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
                };
+
+               vreg_l10d: ldo10 {
+                       regulator-name = "vreg_l10d";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
        };
 };
 
        pinctrl-0 = <&pcie4_default>;
 
        status = "okay";
+};
 
-       pcie@0 {
-               device_type = "pci";
-               reg = <0x0 0x0 0x0 0x0 0x0>;
-               #address-cells = <3>;
-               #size-cells = <2>;
-               ranges;
-
-               bus-range = <0x01 0xff>;
-
-               wifi@0 {
-                       compatible = "pci17cb,1103";
-                       reg = <0x10000 0x0 0x0 0x0 0x0>;
+&pcie4_port0 {
+       wifi@0 {
+               compatible = "pci17cb,1103";
+               reg = <0x10000 0x0 0x0 0x0 0x0>;
 
-                       qcom,ath11k-calibration-variant = "LE_X13S";
-               };
+               qcom,ath11k-calibration-variant = "LE_X13S";
        };
 };
 
        remote-endpoint = <&pmic_glink_con1_hs>;
 };
 
+&usb_2 {
+       status = "okay";
+};
+
+&usb_2_hsphy0 {
+       vdda-pll-supply = <&vreg_l1b>;
+       vdda18-supply = <&vreg_l1c>;
+       vdda33-supply = <&vreg_l7d>;
+
+       status = "okay";
+};
+
+&usb_2_hsphy1 {
+       vdda-pll-supply = <&vreg_l8d>;
+       vdda18-supply = <&vreg_l1c>;
+       vdda33-supply = <&vreg_l7d>;
+
+       status = "okay";
+};
+
+&usb_2_hsphy2 {
+       vdda-pll-supply = <&vreg_l10d>;
+       vdda18-supply = <&vreg_l8c>;
+       vdda33-supply = <&vreg_l2d>;
+
+       status = "okay";
+};
+
+&usb_2_hsphy3 {
+       vdda-pll-supply = <&vreg_l10d>;
+       vdda18-supply = <&vreg_l8c>;
+       vdda33-supply = <&vreg_l2d>;
+
+       status = "okay";
+};
+
+&usb_2_qmpphy0 {
+       vdda-phy-supply = <&vreg_l1b>;
+       vdda-pll-supply = <&vreg_l4d>;
+
+       status = "okay";
+};
+
+&usb_2_qmpphy1 {
+       vdda-phy-supply = <&vreg_l8d>;
+       vdda-pll-supply = <&vreg_l4d>;
+
+       status = "okay";
+};
+
 &vamacro {
        pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
        pinctrl-names = "default";
index d0f82e1..0549ba1 100644 (file)
@@ -50,7 +50,8 @@
                        reg = <0x0 0x0>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_0>;
                        power-domains = <&CPU_PD0>;
                        power-domain-names = "psci";
@@ -77,7 +78,8 @@
                        reg = <0x0 0x100>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_100>;
                        power-domains = <&CPU_PD1>;
                        power-domain-names = "psci";
                        reg = <0x0 0x200>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_200>;
                        power-domains = <&CPU_PD2>;
                        power-domain-names = "psci";
                        reg = <0x0 0x300>;
                        clocks = <&cpufreq_hw 0>;
                        enable-method = "psci";
-                       capacity-dmips-mhz = <602>;
+                       capacity-dmips-mhz = <981>;
+                       dynamic-power-coefficient = <549>;
                        next-level-cache = <&L2_300>;
                        power-domains = <&CPU_PD3>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_400>;
                        power-domains = <&CPU_PD4>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_500>;
                        power-domains = <&CPU_PD5>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_600>;
                        power-domains = <&CPU_PD6>;
                        power-domain-names = "psci";
                        clocks = <&cpufreq_hw 1>;
                        enable-method = "psci";
                        capacity-dmips-mhz = <1024>;
+                       dynamic-power-coefficient = <590>;
                        next-level-cache = <&L2_700>;
                        power-domains = <&CPU_PD7>;
                        power-domain-names = "psci";
                scm: scm {
                        compatible = "qcom,scm-sc8280xp", "qcom,scm";
                        interconnects = <&aggre2_noc MASTER_CRYPTO 0 &mc_virt SLAVE_EBI1 0>;
+                       qcom,dload-mode = <&tcsr 0x13000>;
                };
        };
 
                        #mbox-cells = <2>;
                };
 
+               qfprom: efuse@784000 {
+                       compatible = "qcom,sc8280xp-qfprom", "qcom,qfprom";
+                       reg = <0 0x00784000 0 0x3000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       gpu_speed_bin: gpu-speed-bin@18b {
+                               reg = <0x18b 0x1>;
+                               bits = <5 3>;
+                       };
+               };
+
                qup2: geniqup@8c0000 {
                        compatible = "qcom,geni-se-qup";
                        reg = <0 0x008c0000 0 0x2000>;
                        linux,pci-domain = <6>;
                        num-lanes = <1>;
 
+                       msi-map = <0x0 &its 0xe0000 0x10000>;
+
                        interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie4_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie4_phy: phy@1c06000 {
                        linux,pci-domain = <5>;
                        num-lanes = <2>;
 
+                       msi-map = <0x0 &its 0xd0000 0x10000>;
+
                        interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie3b_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie3b_phy: phy@1c0e000 {
                        linux,pci-domain = <4>;
                        num-lanes = <4>;
 
+                       msi-map = <0x0 &its 0xc0000 0x10000>;
+
                        interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie3a_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie3a_phy: phy@1c14000 {
                        linux,pci-domain = <3>;
                        num-lanes = <2>;
 
+                       msi-map = <0x0 &its 0xb0000 0x10000>;
+
                        interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie2b_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2b_phy: phy@1c1e000 {
                        linux,pci-domain = <2>;
                        num-lanes = <4>;
 
+                       msi-map = <0x0 &its 0xa0000 0x10000>;
+
                        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 523 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 524 IRQ_TYPE_LEVEL_HIGH>,
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie2a_port0: pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2a_phy: phy@1c24000 {
                        interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
                };
 
+               usb_2: usb@a4f8800 {
+                       compatible = "qcom,sc8280xp-dwc3-mp", "qcom,dwc3";
+                       reg = <0 0x0a4f8800 0 0x400>;
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       clocks = <&gcc GCC_CFG_NOC_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_MASTER_CLK>,
+                                <&gcc GCC_AGGRE_USB3_MP_AXI_CLK>,
+                                <&gcc GCC_USB30_MP_SLEEP_CLK>,
+                                <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_NORTH_AXI_CLK>,
+                                <&gcc GCC_AGGRE_USB_NOC_SOUTH_AXI_CLK>,
+                                <&gcc GCC_SYS_NOC_USB_AXI_CLK>;
+                       clock-names = "cfg_noc", "core", "iface", "sleep", "mock_utmi",
+                                     "noc_aggr", "noc_aggr_north", "noc_aggr_south", "noc_sys";
+
+                       assigned-clocks = <&gcc GCC_USB30_MP_MOCK_UTMI_CLK>,
+                                         <&gcc GCC_USB30_MP_MASTER_CLK>;
+                       assigned-clock-rates = <19200000>, <200000000>;
+
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 857 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 856 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 860 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 859 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 127 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 126 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 129 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 128 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 131 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 130 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 133 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 132 IRQ_TYPE_EDGE_BOTH>,
+                                             <&pdc 16 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
+
+                       interrupt-names = "pwr_event_1", "pwr_event_2",
+                                         "pwr_event_3", "pwr_event_4",
+                                         "hs_phy_1",    "hs_phy_2",
+                                         "hs_phy_3",    "hs_phy_4",
+                                         "dp_hs_phy_1", "dm_hs_phy_1",
+                                         "dp_hs_phy_2", "dm_hs_phy_2",
+                                         "dp_hs_phy_3", "dm_hs_phy_3",
+                                         "dp_hs_phy_4", "dm_hs_phy_4",
+                                         "ss_phy_1",    "ss_phy_2";
+
+                       power-domains = <&gcc USB30_MP_GDSC>;
+                       required-opps = <&rpmhpd_opp_nom>;
+
+                       resets = <&gcc GCC_USB30_MP_BCR>;
+
+                       interconnects = <&aggre1_noc MASTER_USB3_MP 0 &mc_virt SLAVE_EBI1 0>,
+                                       <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_USB3_MP 0>;
+                       interconnect-names = "usb-ddr", "apps-usb";
+
+                       wakeup-source;
+
+                       status = "disabled";
+
+                       usb_2_dwc3: usb@a400000 {
+                               compatible = "snps,dwc3";
+                               reg = <0 0x0a400000 0 0xcd00>;
+                               interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
+                               iommus = <&apps_smmu 0x800 0x0>;
+                               phys = <&usb_2_hsphy0>, <&usb_2_qmpphy0>,
+                                      <&usb_2_hsphy1>, <&usb_2_qmpphy1>,
+                                      <&usb_2_hsphy2>,
+                                      <&usb_2_hsphy3>;
+                               phy-names = "usb2-0", "usb3-0",
+                                           "usb2-1", "usb3-1",
+                                           "usb2-2",
+                                           "usb2-3";
+                               dr_mode = "host";
+                       };
+               };
+
                usb_0: usb@a6f8800 {
                        compatible = "qcom,sc8280xp-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 804 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 805 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 14 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 15 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 138 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
                                          "ss_phy_irq";
                        assigned-clock-rates = <19200000>, <200000000>;
 
                        interrupts-extended = <&intc GIC_SPI 811 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 790 IRQ_TYPE_LEVEL_HIGH>,
                                              <&pdc 12 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 13 IRQ_TYPE_EDGE_BOTH>,
                                              <&pdc 136 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
                                          "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
                                          "ss_phy_irq";
                        #thermal-sensor-cells = <1>;
                };
 
+               restart@c264000 {
+                       compatible = "qcom,pshold";
+                       reg = <0 0x0c264000 0 0x4>;
+               };
+
                tsens1: thermal-sensor@c265000 {
                        compatible = "qcom,sc8280xp-tsens", "qcom,tsens-v2";
                        reg = <0 0x0c265000 0 0x1ff>, /* TM */
                        #size-cells = <2>;
                        ranges;
 
-                       msi-controller@17a40000 {
+                       its: msi-controller@17a40000 {
                                compatible = "arm,gic-v3-its";
                                reg = <0 0x17a40000 0 0x20000>;
                                msi-controller;
                              <0 0x18592000 0 0x1000>;
                        reg-names = "freq-domain0", "freq-domain1";
 
+                       interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "dcvsh-irq-0",
+                                         "dcvsh-irq-1";
+
                        clocks = <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_GPLL0>;
                        clock-names = "xo", "alternate";
 
index 819a5f8..a4b722e 100644 (file)
@@ -90,6 +90,8 @@
 
        gpio-keys {
                compatible = "gpio-keys";
+               pinctrl-0 = <&gpio_keys_default>;
+               pinctrl-names = "default";
 
                key-camera-focus {
                        label = "Camera Focus";
                bias-disable;
        };
 
+       gpio_keys_default: gpio-keys-default-state {
+               pins = "gpio64", "gpio113";
+               function = "gpio";
+               drive-strength = <2>;
+               bias-pull-up;
+       };
+
        imx300_vana_default: imx300-vana-default-state {
                pins = "gpio50";
                function = "gpio";
index 057579a..e2708c7 100644 (file)
        };
 };
 
+&pmi632_typec {
+       status = "okay";
+
+       connector {
+               compatible = "usb-c-connector";
+
+               power-role = "dual";
+               data-role = "dual";
+               self-powered;
+
+               typec-power-opmode = "default";
+               pd-disable;
+
+               port {
+                       pmi632_hs_in: endpoint {
+                               remote-endpoint = <&usb_dwc3_hs>;
+                       };
+               };
+       };
+};
+
+&pmi632_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <1000000>;
+       status = "okay";
+};
+
 &sdhc_1 {
        status = "okay";
        vmmc-supply = <&pm8953_l8>;
        status = "okay";
 };
 
-&usb3_dwc3 {
-       dr_mode = "peripheral";
+&usb_dwc3_hs {
+       remote-endpoint = <&pmi632_hs_in>;
 };
 
 &wcnss {
index 32a7bd5..176b011 100644 (file)
        };
 };
 
+&mdss {
+       status = "okay";
+};
+
+&mdss_dsi0 {
+       vdda-supply = <&vreg_l1a_1p225>;
+       status = "okay";
+
+       panel@0 {
+               compatible = "samsung,s6e3fa7-ams559nk06";
+               reg = <0>;
+
+               reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&panel_default>;
+
+               power-supply = <&vreg_l6b_3p3>;
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&mdss_dsi0_out>;
+                       };
+               };
+       };
+};
+
+&mdss_dsi0_out {
+       remote-endpoint = <&panel_in>;
+       data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+       vdds-supply = <&vreg_l1b_0p925>;
+       status = "okay";
+};
+
+&mdss_mdp {
+       status = "okay";
+};
+
 &pm660l_gpios {
        vol_up_pin: vol-up-state {
                pins = "gpio7";
 &tlmm {
        gpio-reserved-ranges = <0 4>, <81 4>;
 
+       panel_default: panel-default-state {
+               te-pins {
+                       pins = "gpio10";
+                       function = "mdp_vsync";
+                       drive-strength = <2>;
+                       bias-pull-down;
+               };
+
+               reset-pins {
+                       pins = "gpio75";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+
+               mode-pins {
+                       pins = "gpio76";
+                       function = "gpio";
+                       drive-strength = <8>;
+                       bias-disable;
+               };
+       };
+
        touchscreen_default: ts-default-state {
                ts-reset-pins {
                        pins = "gpio99";
index 1f51732..9a6d3d0 100644 (file)
 
                gpio = <&tlmm 90 GPIO_ACTIVE_HIGH>;
                enable-active-high;
+               /*
+                * FIXME: this regulator is responsible for VBUS on the left USB
+                * port. Keep it always on until we can correctly model this
+                * relationship.
+                */
+               regulator-always-on;
 
                pinctrl-names = "default";
                pinctrl-0 = <&pcie0_pwren_state>;
index 2f20be9..10de2bd 100644 (file)
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0a000 {
index 7dbdf8c..da17040 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
        };
 
                hwlocks = <&tcsr_mutex 3>;
        };
 
-       soc: soc {
+       soc: soc@0 {
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
index 0be0535..84ff20a 100644 (file)
                        status = "disabled";
                };
 
+               cryptobam: dma-controller@1dc4000 {
+                       compatible = "qcom,bam-v1.7.4", "qcom,bam-v1.7.0";
+                       reg = <0 0x01dc4000 0 0x24000>;
+                       interrupts = <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>;
+                       #dma-cells = <1>;
+                       qcom,ee = <0>;
+                       qcom,controlled-remotely;
+                       num-channels = <16>;
+                       qcom,num-ees = <4>;
+                       iommus = <&apps_smmu 0x426 0x11>,
+                                <&apps_smmu 0x432 0x0>,
+                                <&apps_smmu 0x436 0x11>,
+                                <&apps_smmu 0x438 0x1>,
+                                <&apps_smmu 0x43f 0x0>;
+               };
+
+               crypto: crypto@1dfa000 {
+                       compatible = "qcom,sm6350-qce", "qcom,sm8150-qce", "qcom,qce";
+                       reg = <0 0x01dfa000 0 0x6000>;
+                       dmas = <&cryptobam 4>, <&cryptobam 5>;
+                       dma-names = "rx", "tx";
+                       iommus = <&apps_smmu 0x426 0x11>,
+                                <&apps_smmu 0x432 0x0>,
+                                <&apps_smmu 0x436 0x11>,
+                                <&apps_smmu 0x438 0x1>,
+                                <&apps_smmu 0x43f 0x0>;
+                       interconnects = <&aggre2_noc MASTER_CRYPTO_CORE_0 QCOM_ICC_TAG_ALWAYS
+                                        &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "memory";
+               };
+
                ipa: ipa@1e40000 {
                        compatible = "qcom,sm6350-ipa";
 
                                                        remote-endpoint = <&mdss_dsi0_in>;
                                                };
                                        };
+
+                                       port@2 {
+                                               reg = <2>;
+
+                                               dpu_intf0_out: endpoint {
+                                                       remote-endpoint = <&mdss_dp_in>;
+                                               };
+                                       };
                                };
 
                                mdp_opp_table: opp-table {
                                };
                        };
 
+                       mdss_dp: displayport-controller@ae90000 {
+                               compatible = "qcom,sm6350-dp", "qcom,sm8350-dp";
+                               reg = <0 0xae90000 0 0x200>,
+                                     <0 0xae90200 0 0x200>,
+                                     <0 0xae90400 0 0x600>,
+                                     <0 0xae91000 0 0x400>,
+                                     <0 0xae91400 0 0x400>;
+                               interrupt-parent = <&mdss>;
+                               interrupts = <12>;
+                               clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
+                                        <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
+                               clock-names = "core_iface",
+                                             "core_aux",
+                                             "ctrl_link",
+                                             "ctrl_link_iface",
+                                             "stream_pixel";
+
+                               assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
+                                                 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
+                               assigned-clock-parents = <&usb_1_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+                                                        <&usb_1_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
+
+                               phys = <&usb_1_qmpphy QMP_USB43DP_DP_PHY>;
+                               phy-names = "dp";
+
+                               #sound-dai-cells = <0>;
+
+                               operating-points-v2 = <&dp_opp_table>;
+                               power-domains = <&rpmhpd SM6350_CX>;
+
+                               status = "disabled";
+
+                               ports {
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       port@0 {
+                                               reg = <0>;
+
+                                               mdss_dp_in: endpoint {
+                                                       remote-endpoint = <&dpu_intf0_out>;
+                                               };
+                                       };
+
+                                       port@1 {
+                                               reg = <1>;
+
+                                               mdss_dp_out: endpoint {
+                                               };
+                                       };
+                               };
+
+                               dp_opp_table: opp-table {
+                                       compatible = "operating-points-v2";
+
+                                       opp-160000000 {
+                                               opp-hz = /bits/ 64 <160000000>;
+                                               required-opps = <&rpmhpd_opp_low_svs>;
+                                       };
+
+                                       opp-270000000 {
+                                               opp-hz = /bits/ 64 <270000000>;
+                                               required-opps = <&rpmhpd_opp_svs>;
+                                       };
+
+                                       opp-540000000 {
+                                               opp-hz = /bits/ 64 <540000000>;
+                                               required-opps = <&rpmhpd_opp_svs_l1>;
+                                       };
+
+                                       opp-810000000 {
+                                               opp-hz = /bits/ 64 <810000000>;
+                                               required-opps = <&rpmhpd_opp_nom>;
+                                       };
+                               };
+                       };
+
                        mdss_dsi0: dsi@ae94000 {
                                compatible = "qcom,sm6350-dsi-ctrl", "qcom,mdss-dsi-ctrl";
                                reg = <0 0x0ae94000 0 0x400>;
index de670b4..6cb6f50 100644 (file)
        firmware-name = "qcom/sm8150/cdsp.mbn";
 };
 
+&remoteproc_mpss {
+       firmware-name = "qcom/sm8150/modem.mbn";
+       status = "okay";
+};
+
 &remoteproc_slpi {
        status = "okay";
 
 &usb_2_dwc3 {
        dr_mode = "host";
 };
+
+&wifi {
+       status = "okay";
+
+       vdd-0.8-cx-mx-supply = <&vreg_l1a_0p75>;
+       vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
+       vdd-1.3-rfa-supply = <&vreg_l2c_1p3>;
+       vdd-3.3-ch0-supply = <&vreg_l11c_3p3>;
+
+       qcom,ath10k-calibration-variant = "Qualcomm_sm8150hdk";
+};
index a35c085..ff22e43 100644 (file)
                        pinctrl-0 = <&pcie0_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        pinctrl-0 = <&pcie1_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
index 6f54f50..41f1174 100644 (file)
        connector {
                compatible = "usb-c-connector";
 
-               power-role = "source";
+               op-sink-microwatt = <10000000>;
+               power-role = "dual";
                data-role = "dual";
                self-powered;
 
                                         PDO_FIXED_USB_COMM |
                                         PDO_FIXED_DATA_SWAP)>;
 
+               sink-pdos = <PDO_FIXED(5000, 3000,
+                                      PDO_FIXED_DUAL_ROLE |
+                                      PDO_FIXED_USB_COMM |
+                                      PDO_FIXED_DATA_SWAP)
+                                      PDO_VAR(5000, 12000, 5000)>;
+
                ports {
                        #address-cells = <1>;
                        #size-cells = <0>;
 };
 
 &pm8150b_vbus {
+       regulator-min-microamp = <500000>;
+       regulator-max-microamp = <3000000>;
        status = "okay";
 };
 
index 7f2333c..8ccade6 100644 (file)
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie2_phy: phy@1c16000 {
index b43d264..4c25ab2 100644 (file)
@@ -42,6 +42,7 @@
                compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink";
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 81 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
index a5e7dbb..f7c4700 100644 (file)
@@ -12,6 +12,7 @@
 #include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/firmware/qcom,scm.h>
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interconnect/qcom,icc.h>
 #include <dt-bindings/interconnect/qcom,sm8350.h>
 #include <dt-bindings/mailbox/qcom-ipcc.h>
 #include <dt-bindings/phy/phy-qcom-qmp.h>
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                <&gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
                                <&gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
+                       interconnects = <&aggre1_noc MASTER_UFS_MEM QCOM_ICC_TAG_ALWAYS
+                                        &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
+                                       <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
+                                        &config_noc SLAVE_UFS_MEM_CFG QCOM_ICC_TAG_ALWAYS>;
+                       interconnect-names = "ufs-ddr", "cpu-ufs";
                        freq-table-hz =
                                <75000000 300000000>,
                                <0 0>,
index 0786cff..3be46b5 100644 (file)
@@ -95,6 +95,7 @@
                compatible = "qcom,sm8450-pmic-glink", "qcom,pmic-glink";
                #address-cells = <1>;
                #size-cells = <0>;
+               orientation-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>;
 
                connector@0 {
                        compatible = "usb-c-connector";
index c7d0594..7b62ead 100644 (file)
        vdda-pll-supply = <&vreg_l5b_0p88>;
        vdda18-supply = <&vreg_l1c_1p8>;
        vdda33-supply = <&vreg_l2b_3p07>;
+       qcom,squelch-detector-bp = <(-2090)>;
+       qcom,hs-disconnect-bp = <1743>;
+       qcom,pre-emphasis-amplitude-bp = <40000>;
+       qcom,pre-emphasis-duration-bp = <20000>;
+       qcom,hs-amplitude-bp = <2000>;
+       qcom,hs-output-impedance-micro-ohms = <2600000>;
+       qcom,hs-crossover-voltage-microvolt = <(-31000)>;
+       qcom,hs-rise-fall-time-bp = <(-4100)>;
 };
 
 &usb_1_qmpphy {
index 024d265..616461f 100644 (file)
                        pinctrl-0 = <&pcie0_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        pinctrl-0 = <&pcie1_default_state>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "sdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "adsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "cdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
diff --git a/arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts b/arch/arm64/boot/dts/qcom/sm8550-sony-xperia-yodo-pdx234.dts
new file mode 100644 (file)
index 0000000..85e0d3d
--- /dev/null
@@ -0,0 +1,779 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2023, Linaro Limited
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/firmware/qcom,scm.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include <dt-bindings/sound/cs35l45.h>
+#include "sm8550.dtsi"
+#include "pm8010.dtsi"
+#include "pm8550.dtsi"
+#include "pm8550b.dtsi"
+#define PMK8550VE_SID 5
+#include "pm8550ve.dtsi"
+#include "pm8550vs.dtsi"
+#include "pmk8550.dtsi"
+/* TODO: Only one SID of PMR735D seems accessible? */
+
+/delete-node/ &hwfence_shbuf;
+/delete-node/ &mpss_mem;
+/delete-node/ &rmtfs_mem;
+/ {
+       model = "Sony Xperia 1 V";
+       compatible = "sony,pdx234", "qcom,sm8550";
+       chassis-type = "handset";
+
+       aliases {
+               i2c0 = &i2c0;
+               i2c4 = &i2c4;
+               i2c10 = &i2c10;
+               i2c11 = &i2c11;
+               i2c16 = &i2c_hub_2;
+               serial0 = &uart7;
+       };
+
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               label = "gpio-keys";
+
+               pinctrl-0 = <&focus_n &snapshot_n &vol_down_n>;
+               pinctrl-names = "default";
+
+               key-camera-focus {
+                       label = "Camera Focus";
+                       linux,code = <KEY_CAMERA_FOCUS>;
+                       gpios = <&pm8550b_gpios 8 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-camera-snapshot {
+                       label = "Camera Snapshot";
+                       gpios = <&pm8550b_gpios 7 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_CAMERA>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+
+               key-volume-down {
+                       label = "Volume Down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <15>;
+                       linux,can-disable;
+                       wakeup-source;
+               };
+       };
+
+       pmic-glink {
+               compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink";
+               orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               connector@0 {
+                       compatible = "usb-c-connector";
+                       reg = <0>;
+                       power-role = "dual";
+                       data-role = "dual";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       pmic_glink_hs_in: endpoint {
+                                               remote-endpoint = <&usb_1_dwc3_hs>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       pmic_glink_ss_in: endpoint {
+                                               remote-endpoint = <&usb_dp_qmpphy_out>;
+                                       };
+                               };
+                       };
+               };
+       };
+
+       reserved-memory {
+               mpss_mem: mpss-region@89800000 {
+                       reg = <0x0 0x89800000 0x0 0x10800000>;
+                       no-map;
+               };
+
+               splash@b8000000 {
+                       reg = <0x0 0xb8000000 0x0 0x2b00000>;
+                       no-map;
+               };
+
+               hwfence_shbuf: hwfence-shbuf-region@e6440000 {
+                       reg = <0x0 0xe6440000 0x0 0x2dd000>;
+                       no-map;
+               };
+
+               rmtfs_mem: memory@f8b00000 {
+                       compatible = "qcom,rmtfs-mem";
+                       reg = <0x0 0xf8b00000 0x0 0x280000>;
+                       no-map;
+
+                       qcom,client-id = <1>;
+                       qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
+               };
+
+               ramoops@ffd00000 {
+                       compatible = "ramoops";
+                       reg = <0x0 0xffd00000 0x0 0xc0000>;
+                       console-size = <0x40000>;
+                       record-size = <0x1000>;
+                       pmsg-size = <0x40000>;
+                       ecc-size = <16>;
+               };
+
+               rdtag-store-region@ffdc0000 {
+                       reg = <0x0 0xffdc0000 0x0 0x40000>;
+                       no-map;
+               };
+       };
+
+       vph_pwr: vph-pwr-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vph_pwr";
+               regulator-min-microvolt = <3700000>;
+               regulator-max-microvolt = <3700000>;
+
+               regulator-always-on;
+               regulator-boot-on;
+       };
+};
+
+&apps_rsc {
+       regulators-0 {
+               compatible = "qcom,pm8550-rpmh-regulators";
+               qcom,pmic-id = "b";
+
+               pm8550_bob1: bob1 {
+                       regulator-name = "pm8550_bob1";
+                       regulator-min-microvolt = <3416000>;
+                       regulator-max-microvolt = <3960000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* TODO: bob2 @ 2.704-3.008V doesn't fall into the vreg driver constraints */
+
+               pm8550_l1: ldo1 {
+                       regulator-name = "pm8550_l1";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l2: ldo2 {
+                       regulator-name = "pm8550_l2";
+                       regulator-min-microvolt = <3008000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L4 exists in cmd-db, but the board seems to crash on access */
+
+               pm8550_l5: ldo5 {
+                       regulator-name = "pm8550_l5";
+                       regulator-min-microvolt = <3104000>;
+                       regulator-max-microvolt = <3104000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l6: ldo6 {
+                       regulator-name = "pm8550_l6";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l7: ldo7 {
+                       regulator-name = "pm8550_l7";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l8: ldo8 {
+                       regulator-name = "pm8550_l8";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l9: ldo9 {
+                       regulator-name = "pm8550_l9";
+                       regulator-min-microvolt = <2960000>;
+                       regulator-max-microvolt = <3008000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l10: ldo10 {
+                       regulator-name = "pm8550_l10";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l11: ldo11 {
+                       regulator-name = "pm8550_l11";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l12: ldo12 {
+                       regulator-name = "pm8550_l12";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l13: ldo13 {
+                       regulator-name = "pm8550_l13";
+                       regulator-min-microvolt = <3000000>;
+                       regulator-max-microvolt = <3000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l14: ldo14 {
+                       regulator-name = "pm8550_l14";
+                       regulator-min-microvolt = <3304000>;
+                       regulator-max-microvolt = <3304000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l15: ldo15 {
+                       regulator-name = "pm8550_l15";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <1800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l16: ldo16 {
+                       regulator-name = "pm8550_l16";
+                       regulator-min-microvolt = <2800000>;
+                       regulator-max-microvolt = <2800000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550_l17: ldo17 {
+                       regulator-name = "pm8550_l17";
+                       regulator-min-microvolt = <2504000>;
+                       regulator-max-microvolt = <2504000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-1 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "c";
+
+               pm8550vs_0_l1: ldo1 {
+                       regulator-name = "pm8550vs_0_l1";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_0_l3: ldo3 {
+                       regulator-name = "pm8550vs_0_l3";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-2 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "d";
+
+               pm8550vs_1_l1: ldo1 {
+                       regulator-name = "pm8550vs_1_l1";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <920000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               /* L3 exists in cmd-db, but the board seems to crash on access */
+       };
+
+       regulators-3 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "e";
+
+               pm8550vs_2_s4: smps4 {
+                       regulator-name = "pm8550vs_2_s4";
+                       regulator-min-microvolt = <904000>;
+                       regulator-max-microvolt = <984000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_s5: smps5 {
+                       regulator-name = "pm8550vs_2_s5";
+                       regulator-min-microvolt = <1010000>;
+                       regulator-max-microvolt = <1120000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_l1: ldo1 {
+                       regulator-name = "pm8550vs_2_l1";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_l2: ldo2 {
+                       regulator-name = "pm8550vs_2_l2";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <968000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_2_l3: ldo3 {
+                       regulator-name = "pm8550vs_2_l3";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-4 {
+               compatible = "qcom,pm8550ve-rpmh-regulators";
+               qcom,pmic-id = "f";
+
+               pm8550ve_s4: smps4 {
+                       regulator-name = "pm8550ve_s4";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <700000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550ve_l1: ldo1 {
+                       regulator-name = "pm8550ve_l1";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550ve_l2: ldo2 {
+                       regulator-name = "pm8550ve_l2";
+                       regulator-min-microvolt = <880000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550ve_l3: ldo3 {
+                       regulator-name = "pm8550ve_l3";
+                       regulator-min-microvolt = <912000>;
+                       regulator-max-microvolt = <912000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       regulators-5 {
+               compatible = "qcom,pm8550vs-rpmh-regulators";
+               qcom,pmic-id = "g";
+
+               pm8550vs_3_s1: smps1 {
+                       regulator-name = "pm8550vs_3_s1";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1300000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s2: smps2 {
+                       regulator-name = "pm8550vs_3_s2";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1036000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s3: smps3 {
+                       regulator-name = "pm8550vs_3_s3";
+                       regulator-min-microvolt = <300000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s4: smps4 {
+                       regulator-name = "pm8550vs_3_s4";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1352000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s5: smps5 {
+                       regulator-name = "pm8550vs_3_s5";
+                       regulator-min-microvolt = <500000>;
+                       regulator-max-microvolt = <1004000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_s6: smps6 {
+                       regulator-name = "pm8550vs_3_s6";
+                       regulator-min-microvolt = <1800000>;
+                       regulator-max-microvolt = <2000000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_l1: ldo1 {
+                       regulator-name = "pm8550vs_3_l1";
+                       regulator-min-microvolt = <1144000>;
+                       regulator-max-microvolt = <1256000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_l2: ldo2 {
+                       regulator-name = "pm8550vs_3_l2";
+                       regulator-min-microvolt = <1104000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+
+               pm8550vs_3_l3: ldo3 {
+                       regulator-name = "pm8550vs_3_l3";
+                       regulator-min-microvolt = <1200000>;
+                       regulator-max-microvolt = <1200000>;
+                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+               };
+       };
+
+       /* TODO: Unknown PMIC @ k, l, PM8010 @ m, n */
+};
+
+&gpi_dma1 {
+       status = "okay";
+};
+
+&gpi_dma2 {
+       status = "okay";
+};
+
+&i2c_hub_2 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       pmic@75 {
+               compatible = "dlg,slg51000";
+               reg = <0x75>;
+               dlg,cs-gpios = <&pm8550vs_g_gpios 4 GPIO_ACTIVE_HIGH>;
+
+               pinctrl-0 = <&cam_pwr_a_cs>;
+               pinctrl-names = "default";
+
+               regulators {
+                       slg51000_a_ldo1: ldo1 {
+                               regulator-name = "slg51000_a_ldo1";
+                               regulator-min-microvolt = <2400000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       slg51000_a_ldo2: ldo2 {
+                               regulator-name = "slg51000_a_ldo2";
+                               regulator-min-microvolt = <2400000>;
+                               regulator-max-microvolt = <3300000>;
+                       };
+
+                       slg51000_a_ldo3: ldo3 {
+                               regulator-name = "slg51000_a_ldo3";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3750000>;
+                       };
+
+                       slg51000_a_ldo4: ldo4 {
+                               regulator-name = "slg51000_a_ldo4";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3750000>;
+                       };
+
+                       slg51000_a_ldo5: ldo5 {
+                               regulator-name = "slg51000_a_ldo5";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       slg51000_a_ldo6: ldo6 {
+                               regulator-name = "slg51000_a_ldo6";
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1200000>;
+                       };
+
+                       slg51000_a_ldo7: ldo7 {
+                               regulator-name = "slg51000_a_ldo7";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <3750000>;
+                       };
+               };
+       };
+};
+
+&i2c_master_hub_0 {
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <1000000>;
+       status = "okay";
+
+       /* NXP NFC @ 28 */
+};
+
+&i2c4 {
+       clock-frequency = <400000>;
+       status = "okay";
+
+       /* LX Semi SW82907 touchscreen @ 28 */
+};
+
+&i2c10 {
+       clock-frequency = <1000000>;
+       status = "okay";
+
+       /* Cirrus Logic CS40L25A boosted haptics driver @ 40 */
+};
+
+&i2c11 {
+       clock-frequency = <1000000>;
+       status = "okay";
+
+       cs35l41_l: speaker-amp@30 {
+               compatible = "cirrus,cs35l45";
+               reg = <0x30>;
+               interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>;
+               cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED | CS35L45_ASP_TX_HIZ_DISABLED)>;
+               #sound-dai-cells = <1>;
+
+               cirrus,gpio-ctrl2 {
+                       gpio-ctrl = <0x2>;
+               };
+       };
+
+       cs35l41_r: speaker-amp@31 {
+               compatible = "cirrus,cs35l45";
+               reg = <0x31>;
+               interrupts-extended = <&tlmm 182 IRQ_TYPE_LEVEL_LOW>;
+               reset-gpios = <&tlmm 183 GPIO_ACTIVE_HIGH>;
+               cirrus,asp-sdout-hiz-ctrl = <(CS35L45_ASP_TX_HIZ_UNUSED | CS35L45_ASP_TX_HIZ_DISABLED)>;
+               #sound-dai-cells = <1>;
+
+               cirrus,gpio-ctrl2 {
+                       gpio-ctrl = <0x2>;
+               };
+       };
+};
+
+&pcie0 {
+       wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
+       perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
+
+       pinctrl-0 = <&pcie0_default_state>;
+       pinctrl-names = "default";
+
+       status = "okay";
+};
+
+&pcie0_phy {
+       vdda-phy-supply = <&pm8550vs_2_l1>;
+       vdda-pll-supply = <&pm8550vs_2_l3>;
+
+       status = "okay";
+};
+
+&pm8550_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <1>, <4>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <0>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <2>, <3>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <1000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <1>;
+       };
+};
+
+&pm8550_gpios {
+       vol_down_n: volume-down-n-state {
+               pins = "gpio6";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+
+       sdc2_card_det_n: sd-card-det-n-state {
+               pins = "gpio12";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-down;
+               output-disable;
+               input-enable;
+       };
+};
+
+&pm8550b_gpios {
+       snapshot_n: snapshot-n-state {
+               pins = "gpio7";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+
+       focus_n: focus-n-state {
+               pins = "gpio8";
+               function = "normal";
+               power-source = <1>;
+               bias-pull-up;
+               input-enable;
+       };
+};
+
+&pm8550vs_g_gpios {
+       cam_pwr_a_cs: cam-pwr-a-cs-state {
+               pins = "gpio4";
+               function = "normal";
+               power-source = <0x01>;
+               drive-push-pull;
+               output-low;
+               qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>;
+       };
+};
+
+&pm8550b_eusb2_repeater {
+       qcom,tune-usb2-disc-thres = /bits/ 8 <0x6>;
+       qcom,tune-usb2-amplitude = /bits/ 8 <0xf>;
+       qcom,tune-usb2-preem = /bits/ 8 <0x7>;
+       vdd18-supply = <&pm8550_l15>;
+       vdd3-supply = <&pm8550_l5>;
+};
+
+&pon_pwrkey {
+       status = "okay";
+};
+
+&pon_resin {
+       linux,code = <KEY_VOLUMEUP>;
+       status = "okay";
+};
+
+&qupv3_id_0 {
+       status = "okay";
+};
+
+&qupv3_id_1 {
+       status = "okay";
+};
+
+&remoteproc_adsp {
+       firmware-name = "qcom/sm8550/Sony/yodo/adsp.mbn",
+                       "qcom/sm8550/Sony/yodo/adsp_dtb.mbn";
+       status = "okay";
+};
+
+&remoteproc_cdsp {
+       firmware-name = "qcom/sm8550/Sony/yodo/cdsp.mbn",
+                       "qcom/sm8550/Sony/yodo/cdsp_dtb.mbn";
+       status = "okay";
+};
+
+&sdhc_2 {
+       cd-gpios = <&pm8550_gpios 12 GPIO_ACTIVE_HIGH>;
+       pinctrl-0 = <&sdc2_default &sdc2_card_det_n>;
+       pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>;
+       pinctrl-names = "default", "sleep";
+       vmmc-supply = <&pm8550_l9>;
+       vqmmc-supply = <&pm8550_l8>;
+       no-sdio;
+       no-mmc;
+       status = "okay";
+};
+
+&sleep_clk {
+       clock-frequency = <32000>;
+};
+
+&tlmm {
+       gpio-reserved-ranges = <32 8>;
+};
+
+&uart7 {
+       status = "okay";
+};
+
+&usb_1 {
+       status = "okay";
+};
+
+&usb_1_dwc3 {
+       dr_mode = "otg";
+       usb-role-switch;
+};
+
+&usb_1_dwc3_hs {
+       remote-endpoint = <&pmic_glink_hs_in>;
+};
+
+&usb_1_dwc3_ss {
+       remote-endpoint = <&usb_dp_qmpphy_usb_ss_in>;
+};
+
+&usb_1_hsphy {
+       vdd-supply = <&pm8550vs_2_l1>;
+       vdda12-supply = <&pm8550vs_2_l3>;
+       phys = <&pm8550b_eusb2_repeater>;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy {
+       vdda-phy-supply = <&pm8550vs_2_l3>;
+       vdda-pll-supply = <&pm8550ve_l3>;
+       orientation-switch;
+
+       status = "okay";
+};
+
+&usb_dp_qmpphy_out {
+       remote-endpoint = <&pmic_glink_ss_in>;
+};
+
+&usb_dp_qmpphy_usb_ss_in {
+       remote-endpoint = <&usb_1_dwc3_ss>;
+};
+
+&xo_board {
+       clock-frequency = <76800000>;
+};
index 3348bc0..bc5aeb0 100644 (file)
                        dma-channels = <12>;
                        dma-channel-mask = <0x3e>;
                        iommus = <&apps_smmu 0x436 0>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        clocks = <&gcc GCC_QUPV3_WRAP_2_M_AHB_CLK>,
                                 <&gcc GCC_QUPV3_WRAP_2_S_AHB_CLK>;
                        iommus = <&apps_smmu 0x423 0>;
+                       dma-coherent;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        status = "disabled";
                        dma-channels = <12>;
                        dma-channel-mask = <0x1e>;
                        iommus = <&apps_smmu 0xb6 0>;
+                       dma-coherent;
                        status = "disabled";
                };
 
                        iommus = <&apps_smmu 0xa3 0>;
                        interconnects = <&clk_virt MASTER_QUP_CORE_1 0 &clk_virt SLAVE_QUP_CORE_1 0>;
                        interconnect-names = "qup-core";
+                       dma-coherent;
                        #address-cells = <2>;
                        #size-cells = <2>;
                        status = "disabled";
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                        phy-names = "pciephy";
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                                reg = <0x0 0x0a600000 0x0 0xcd00>;
                                interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
                                iommus = <&apps_smmu 0x40 0x0>;
-                               snps,dis_u2_susphy_quirk;
-                               snps,dis_enblslpm_quirk;
-                               snps,usb3_lpm_capable;
                                phys = <&usb_1_hsphy>,
                                       <&usb_dp_qmpphy QMP_USB43DP_USB3_PHY>;
                                phy-names = "usb2-phy", "usb3-phy";
+                               snps,hird-threshold = /bits/ 8 <0x0>;
+                               snps,usb2-gadget-lpm-disable;
+                               snps,dis_u2_susphy_quirk;
+                               snps,dis_enblslpm_quirk;
+                               snps,dis-u1-entry-quirk;
+                               snps,dis-u2-entry-quirk;
+                               snps,is-utmi-l1-suspend;
+                               snps,usb3_lpm_capable;
+                               snps,usb2-lpm-disable;
+                               snps,has-lpm-erratum;
+                               tx-fifo-resize;
+                               dma-coherent;
 
                                ports {
                                        #address-cells = <1>;
                                     <GIC_SPI 694 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 695 IRQ_TYPE_LEVEL_HIGH>,
                                     <GIC_SPI 696 IRQ_TYPE_LEVEL_HIGH>;
+                       dma-coherent;
                };
 
                intc: interrupt-controller@17100000 {
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "adsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                        compatible = "qcom,fastrpc";
                                        qcom,glink-channels = "fastrpcglink-apps-dsp";
                                        label = "cdsp";
+                                       qcom,non-secure-domain;
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
index 4450273..d04ceaa 100644 (file)
        status = "okay";
 };
 
-&mdss_mdp {
-       status = "okay";
-};
-
 &pcie_1_phy_aux_clk {
        clock-frequency = <1000>;
 };
index b07cac2..4e94f7f 100644 (file)
        status = "okay";
 };
 
+&gpu {
+       status = "okay";
+
+       zap-shader {
+               firmware-name = "qcom/sm8650/gen70900_zap.mbn";
+       };
+};
+
 &lpass_tlmm {
        spkr_1_sd_n_active: spkr-1-sd-n-active-state {
                pins = "gpio21";
        remote-endpoint = <&usb_dp_qmpphy_dp_in>;
 };
 
-&mdss_mdp {
-       status = "okay";
-};
-
 &pcie_1_phy_aux_clk {
        clock-frequency = <1000>;
 };
index eb11786..62a6e77 100644 (file)
                        no-map;
                };
 
-               /* Merged aop_config, tme_crash_dump, tme_log and uefi_log regions */
+               /* Merged aop_config, tme_crash_dump, tme_log, uefi_log, and chipinfo regions */
                aop_tme_uefi_merged_mem: aop-tme-uefi-merged@81c80000 {
-                       reg = <0 0x81c80000 0 0x74000>;
+                       reg = <0 0x81c80000 0 0x75000>;
                        no-map;
                };
 
                        dma-coherent;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie0_phy: phy@1c06000 {
                                 <0x02000000 0 0x40300000 0 0x40300000 0 0x1fd00000>;
 
                        status = "disabled";
+
+                       pcie@0 {
+                               device_type = "pci";
+                               reg = <0x0 0x0 0x0 0x0 0x0>;
+                               bus-range = <0x01 0xff>;
+
+                               #address-cells = <3>;
+                               #size-cells = <2>;
+                               ranges;
+                       };
                };
 
                pcie1_phy: phy@1c0e000 {
                        #reset-cells = <1>;
                };
 
+               gpu: gpu@3d00000 {
+                       compatible = "qcom,adreno-43051401", "qcom,adreno";
+                       reg = <0x0 0x03d00000 0x0 0x40000>,
+                             <0x0 0x03d9e000 0x0 0x2000>,
+                             <0x0 0x03d61000 0x0 0x800>;
+                       reg-names = "kgsl_3d0_reg_memory",
+                                   "cx_mem",
+                                   "cx_dbgc";
+
+                       interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+
+                       iommus = <&adreno_smmu 0 0x0>,
+                                <&adreno_smmu 1 0x0>;
+
+                       operating-points-v2 = <&gpu_opp_table>;
+
+                       qcom,gmu = <&gmu>;
+
+                       status = "disabled";
+
+                       zap-shader {
+                               memory-region = <&gpu_micro_code_mem>;
+                       };
+
+                       /* Speedbin needs more work on A740+, keep only lower freqs */
+                       gpu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-231000000 {
+                                       opp-hz = /bits/ 64 <231000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D2>;
+                               };
+
+                               opp-310000000 {
+                                       opp-hz = /bits/ 64 <310000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D1>;
+                               };
+
+                               opp-366000000 {
+                                       opp-hz = /bits/ 64 <366000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_D0>;
+                               };
+
+                               opp-422000000 {
+                                       opp-hz = /bits/ 64 <422000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-500000000 {
+                                       opp-hz = /bits/ 64 <500000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS_L1>;
+                               };
+
+                               opp-578000000 {
+                                       opp-hz = /bits/ 64 <578000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+
+                               opp-629000000 {
+                                       opp-hz = /bits/ 64 <629000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L0>;
+                               };
+
+                               opp-680000000 {
+                                       opp-hz = /bits/ 64 <680000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+                               };
+
+                               opp-720000000 {
+                                       opp-hz = /bits/ 64 <720000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS_L2>;
+                               };
+
+                               opp-770000000 {
+                                       opp-hz = /bits/ 64 <770000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+                               };
+
+                               opp-834000000 {
+                                       opp-hz = /bits/ 64 <834000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
+                               };
+                       };
+               };
+
+               gmu: gmu@3d6a000 {
+                       compatible = "qcom,adreno-gmu-750.1", "qcom,adreno-gmu";
+                       reg = <0x0 0x03d6a000 0x0 0x35000>,
+                             <0x0 0x03d50000 0x0 0x10000>,
+                             <0x0 0x0b280000 0x0 0x10000>;
+                       reg-names = "gmu", "rscc", "gmu_pdc";
+
+                       interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hfi", "gmu";
+
+                       clocks = <&gpucc GPU_CC_AHB_CLK>,
+                                <&gpucc GPU_CC_CX_GMU_CLK>,
+                                <&gpucc GPU_CC_CXO_CLK>,
+                                <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+                                <&gpucc GPU_CC_DEMET_CLK>;
+                       clock-names = "ahb",
+                                     "gmu",
+                                     "cxo",
+                                     "axi",
+                                     "memnoc",
+                                     "hub",
+                                     "demet";
+
+                       power-domains = <&gpucc GPU_CX_GDSC>,
+                                       <&gpucc GPU_GX_GDSC>;
+                       power-domain-names = "cx",
+                                            "gx";
+
+                       iommus = <&adreno_smmu 5 0x0>;
+
+                       qcom,qmp = <&aoss_qmp>;
+
+                       operating-points-v2 = <&gmu_opp_table>;
+
+                       gmu_opp_table: opp-table {
+                               compatible = "operating-points-v2";
+
+                               opp-260000000 {
+                                       opp-hz = /bits/ 64 <260000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
+                               };
+
+                               opp-625000000 {
+                                       opp-hz = /bits/ 64 <625000000>;
+                                       opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
+                               };
+                       };
+               };
+
                gpucc: clock-controller@3d90000 {
                        compatible = "qcom,sm8650-gpucc";
                        reg = <0 0x03d90000 0 0xa000>;
                        #power-domain-cells = <1>;
                };
 
+               adreno_smmu: iommu@3da0000 {
+                       compatible = "qcom,sm8650-smmu-500", "qcom,adreno-smmu",
+                                    "qcom,smmu-500", "arm,mmu-500";
+                       reg = <0x0 0x03da0000 0x0 0x40000>;
+                       #iommu-cells = <2>;
+                       #global-interrupts = <1>;
+                       interrupts = <GIC_SPI 673 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 677 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 678 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 679 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 680 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 681 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 682 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 683 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 684 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 685 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 686 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 687 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 476 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 574 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 575 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 576 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 577 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 659 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 661 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 664 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 665 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 666 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 668 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 669 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 699 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>,
+                                <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+                                <&gcc GCC_GPU_SNOC_DVM_GFX_CLK>,
+                                <&gpucc GPU_CC_AHB_CLK>;
+                       clock-names = "hlos",
+                                     "bus",
+                                     "iface",
+                                     "ahb";
+                       power-domains = <&gpucc GPU_CX_GDSC>;
+                       dma-coherent;
+               };
+
                ipa: ipa@3f40000 {
                        compatible = "qcom,sm8650-ipa", "qcom,sm8550-ipa";
 
                        compatible = "qcom,sm8650-dwc3", "qcom,dwc3";
                        reg = <0 0x0a6f8800 0 0x400>;
 
-                       interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
-                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
+                       interrupts-extended = <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>,
                                              <&pdc 15 IRQ_TYPE_EDGE_RISING>,
-                                             <&pdc 14 IRQ_TYPE_EDGE_RISING>;
-                       interrupt-names = "hs_phy_irq",
-                                         "ss_phy_irq",
+                                             <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "pwr_event",
+                                         "hs_phy_irq",
+                                         "dp_hs_phy_irq",
                                          "dm_hs_phy_irq",
-                                         "dp_hs_phy_irq";
+                                         "ss_phy_irq";
 
                        clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
                                 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
 
                                        label = "adsp";
 
+                                       qcom,non-secure-domain;
+
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
 
                                        label = "cdsp";
 
+                                       qcom,non-secure-domain;
+
                                        #address-cells = <1>;
                                        #size-cells = <0>;
 
                                                         <&apps_smmu 0x19c8 0x0>;
                                                dma-coherent;
                                        };
+
+                                       /* note: secure cb9 in downstream */
+
+                                       compute-cb@10 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <12>;
+
+                                               iommus = <&apps_smmu 0x196c 0x0>,
+                                                        <&apps_smmu 0x0c0c 0x20>,
+                                                        <&apps_smmu 0x19cc 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@11 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <13>;
+
+                                               iommus = <&apps_smmu 0x196d 0x0>,
+                                                        <&apps_smmu 0x0c0d 0x20>,
+                                                        <&apps_smmu 0x19cd 0x0>;
+                                               dma-coherent;
+                                       };
+
+                                       compute-cb@12 {
+                                               compatible = "qcom,fastrpc-compute-cb";
+                                               reg = <14>;
+
+                                               iommus = <&apps_smmu 0x196e 0x0>,
+                                                        <&apps_smmu 0x0c0e 0x20>,
+                                                        <&apps_smmu 0x19ce 0x0>;
+                                               dma-coherent;
+                                       };
                                };
                        };
                };
index 6a0a545..c5c2895 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. X1E80100 CRD";
        compatible = "qcom,x1e80100-dp";
        /delete-property/ #sound-dai-cells;
 
-       data-lanes = <0 1 2 3>;
-
        status = "okay";
 
        aux-bus {
                port@1 {
                        reg = <1>;
                        mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
                                remote-endpoint = <&edp_panel_in>;
                        };
                };
        status = "okay";
 };
 
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l8b_3p0>;
+};
+
 &swr0 {
        status = "okay";
 
+       pinctrl-0 = <&wsa_swr_active>, <&spkr_01_sd_n_active>;
+       pinctrl-names = "default";
+
        /* WSA8845, Left Woofer */
        left_woofer: speaker@0,0 {
                compatible = "sdw20217020400";
                reg = <0 0>;
-               pinctrl-0 = <&spkr_01_sd_n_active>;
-               pinctrl-names = "default";
-               powerdown-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "WooferLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        left_tweeter: speaker@0,1 {
                compatible = "sdw20217020400";
                reg = <0 1>;
-               /* pinctrl in left_woofer node because of sharing the GPIO*/
-               powerdown-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 12 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "TwitterLeft";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
 &swr3 {
        status = "okay";
 
+       pinctrl-0 = <&wsa2_swr_active>, <&spkr_23_sd_n_active>;
+       pinctrl-names = "default";
+
        /* WSA8845, Right Woofer */
        right_woofer: speaker@0,0 {
                compatible = "sdw20217020400";
                reg = <0 0>;
-               pinctrl-0 = <&spkr_23_sd_n_active>;
-               pinctrl-names = "default";
-               powerdown-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "WooferRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        right_tweeter: speaker@0,1 {
                compatible = "sdw20217020400";
                reg = <0 1>;
-               /* pinctrl in right_woofer node because of sharing the GPIO*/
-               powerdown-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
+               reset-gpios = <&lpass_tlmm 13 GPIO_ACTIVE_LOW>;
                #sound-dai-cells = <0>;
                sound-name-prefix = "TwitterRight";
                vdd-1p8-supply = <&vreg_l15b_1p8>;
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_0_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_1_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_2_eusb2_repeater>;
+
        status = "okay";
 };
 
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-pmics.dtsi b/arch/arm64/boot/dts/qcom/x1e80100-pmics.dtsi
new file mode 100644 (file)
index 0000000..04301f7
--- /dev/null
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024, Linaro Limited
+ */
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+/ {
+};
+
+&spmi_bus1 {
+       smb2360_0: pmic@7 {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0x7 SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smb2360_0_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+
+       smb2360_1: pmic@a {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0xa SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smb2360_1_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+
+       smb2360_2: pmic@b {
+               compatible = "qcom,smb2360", "qcom,spmi-pmic";
+               reg = <0xb SPMI_USID>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               smb2360_2_eusb2_repeater: phy@fd00 {
+                       compatible = "qcom,smb2360-eusb2-repeater";
+                       reg = <0xfd00>;
+                       #phy-cells = <0>;
+               };
+       };
+};
index e76d290..2061fbe 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
 
 #include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
 
 / {
        model = "Qualcomm Technologies, Inc. X1E80100 QCP";
        compatible = "qcom,x1e80100-dp";
        /delete-property/ #sound-dai-cells;
 
-       data-lanes = <0 1 2 3>;
-
        status = "okay";
 
        aux-bus {
                port@1 {
                        reg = <1>;
                        mdss_dp3_out: endpoint {
+                               data-lanes = <0 1 2 3>;
+                               link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
                                remote-endpoint = <&edp_panel_in>;
                        };
                };
        status = "okay";
 };
 
+&smb2360_0_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&smb2360_2_eusb2_repeater {
+       vdd18-supply = <&vreg_l3d_1p8>;
+       vdd3-supply = <&vreg_l8b_3p0>;
+};
+
 &tlmm {
        gpio-reserved-ranges = <33 3>, /* Unused */
                               <44 4>, /* SPI (TPM) */
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_0_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_1_eusb2_repeater>;
+
        status = "okay";
 };
 
        vdd-supply = <&vreg_l2e_0p8>;
        vdda12-supply = <&vreg_l3e_1p2>;
 
+       phys = <&smb2360_2_eusb2_repeater>;
+
        status = "okay";
 };
 
index 6b40082..5f90a0b 100644 (file)
                        qcom,ports-hstart =             /bits/ 8 <0xff 0x03 0x00 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-hstop =              /bits/ 8 <0xff 0x06 0x0f 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-word-length =        /bits/ 8 <0x01 0x07 0x04 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
-                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0x00 0x01 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
+                       qcom,ports-block-pack-mode =    /bits/ 8 <0xff 0xff 0x01 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-block-group-count =  /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
                        qcom,ports-lane-control =       /bits/ 8 <0x01 0x00 0x00 0x00 0x00 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
 
 
                                                mdss_dp3_in: endpoint {
                                                        remote-endpoint = <&mdss_intf5_out>;
-
-                                                       link-frequencies = /bits/ 64 <8100000000>;
                                                };
                                        };
 
                        #clock-cells = <0>;
                };
 
+               spmi: arbiter@c400000 {
+                       compatible = "qcom,x1e80100-spmi-pmic-arb";
+                       reg = <0 0x0c400000 0 0x3000>,
+                             <0 0x0c500000 0 0x400000>,
+                             <0 0x0c440000 0 0x80000>;
+                       reg-names = "core", "chnls", "obsrvr";
+
+                       qcom,ee = <0>;
+                       qcom,channel = <0>;
+
+                       #address-cells = <2>;
+                       #size-cells = <2>;
+                       ranges;
+
+                       spmi_bus0: spmi@c42d000 {
+                               reg = <0 0x0c42d000 0 0x4000>,
+                                     <0 0x0c4c0000 0 0x10000>;
+                               reg-names = "cnfg", "intr";
+
+                               interrupt-names = "periph_irq";
+                               interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <4>;
+
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+                       };
+
+                       spmi_bus1: spmi@c432000 {
+                               reg = <0 0x0c432000 0 0x4000>,
+                                     <0 0x0c4d0000 0 0x10000>;
+                               reg-names = "cnfg", "intr";
+
+                               interrupt-names = "periph_irq";
+                               interrupts-extended = <&pdc 3 IRQ_TYPE_LEVEL_HIGH>;
+                               interrupt-controller;
+                               #interrupt-cells = <4>;
+
+                               #address-cells = <2>;
+                               #size-cells = <0>;
+                       };
+               };
 
                tlmm: pinctrl@f100000 {
                        compatible = "qcom,x1e80100-tlmm";
index 39aefe6..ba50e29 100644 (file)
@@ -48,7 +48,7 @@
                clock-output-names = "osc27M";
        };
 
-       soc {
+       soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index a3c10ce..e8af391 100644 (file)
@@ -47,7 +47,7 @@
                clock-output-names = "osc27M";
        };
 
-       soc {
+       soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index 34802cc..3a7f6e3 100644 (file)
        };
 
        arm_pmu: pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
                interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>,
                        <&cpu3>, <&cpu4>, <&cpu5>;
                #clock-cells = <0>;
        };
 
-       soc {
+       soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
index 5f3e0e6..fbd214a 100644 (file)
@@ -62,6 +62,9 @@ dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-ulcb.dtb
 dtb-$(CONFIG_ARCH_R8A77965) += r8a77965-ulcb-kf.dtb
 
 dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle.dtb
+dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle-function-expansion.dtbo
+r8a77970-eagle-function-expansion-dtbs := r8a77970-eagle.dtb r8a77970-eagle-function-expansion.dtbo
+dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-eagle-function-expansion.dtb
 dtb-$(CONFIG_ARCH_R8A77970) += r8a77970-v3msk.dtb
 
 dtb-$(CONFIG_ARCH_R8A77980) += r8a77980-condor.dtb
diff --git a/arch/arm64/boot/dts/renesas/r8a77970-eagle-function-expansion.dtso b/arch/arm64/boot/dts/renesas/r8a77970-eagle-function-expansion.dtso
new file mode 100644 (file)
index 0000000..3aa243c
--- /dev/null
@@ -0,0 +1,214 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the Eagle V3M Function expansion board.
+ *
+ * Copyright (C) 2024 Niklas Söderlund <niklas.soderlund@ragnatech.se>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+
+/ {
+       /* CN4 */
+       /* Eagle: SW18 set to OFF */
+       cvbs-in-cn4 {
+               compatible = "composite-video-connector";
+               label = "CVBS IN CN4";
+
+               port {
+                       cvbs_con: endpoint {
+                               remote-endpoint = <&adv7482_ain7>;
+                       };
+               };
+       };
+
+       /* CN2 */
+       /* Eagle: SW35 set 5, 6 and 8 to OFF */
+       hdmi-in-cn2 {
+               compatible = "hdmi-connector";
+               label = "HDMI IN CN2";
+               type = "a";
+
+               port {
+                       hdmi_in_con2: endpoint {
+                               remote-endpoint = <&adv7612_in>;
+                       };
+               };
+       };
+
+       /* CN3 */
+       /* Eagle: SW18 set to OFF */
+       hdmi-in-cn3 {
+               compatible = "hdmi-connector";
+               label = "HDMI IN CN3";
+               type = "a";
+
+               port {
+                       hdmi_in_con: endpoint {
+                               remote-endpoint = <&adv7482_hdmi>;
+                       };
+               };
+       };
+};
+
+/* Disconnect MAX9286 GMSL I2C. */
+&i2c3 {
+       status = "disabled";
+};
+
+/* Connect expansion board I2C. */
+&i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       gpio@27 {
+               compatible = "onnn,pca9654";
+               reg = <0x27>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               vin0_adv7612_en {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_LOW>;
+                       output-high;
+                       line-name = "VIN0_ADV7612_ENn";
+               };
+       };
+
+       hdmi-decoder@4c {
+               compatible = "adi,adv7612";
+               reg = <0x4c>, <0x50>, <0x52>, <0x54>, <0x56>, <0x58>;
+               reg-names = "main", "afe", "rep", "edid", "hdmi", "cp";
+               interrupt-parent = <&gpio3>;
+               interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+               default-input = <0>;
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+
+                               adv7612_in: endpoint {
+                                       remote-endpoint = <&hdmi_in_con2>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <2>;
+
+                               adv7612_out: endpoint {
+                                       remote-endpoint = <&vin0_in>;
+                               };
+                       };
+               };
+       };
+
+       video-receiver@70 {
+               compatible = "adi,adv7482";
+               reg = <0x70 0x71 0x72 0x73 0x74 0x75
+                      0x60 0x61 0x62 0x63 0x64 0x65>;
+               reg-names = "main", "dpll", "cp", "hdmi", "edid", "repeater",
+                           "infoframe", "cbus", "cec", "sdp", "txa", "txb" ;
+               interrupt-parent = <&gpio3>;
+               interrupts = <03 IRQ_TYPE_LEVEL_LOW>, <04 IRQ_TYPE_LEVEL_LOW>;
+               interrupt-names = "intrq1", "intrq2";
+
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@7 {
+                               reg = <7>;
+
+                               adv7482_ain7: endpoint {
+                                       remote-endpoint = <&cvbs_con>;
+                               };
+                       };
+
+                       port@8 {
+                               reg = <8>;
+
+                               adv7482_hdmi: endpoint {
+                                       remote-endpoint = <&hdmi_in_con>;
+                               };
+                       };
+
+                       port@a {
+                               reg = <10>;
+
+                               adv7482_txa: endpoint {
+                                       clock-lanes = <0>;
+                                       data-lanes = <1 2 3 4>;
+                                       remote-endpoint = <&csi40_in>;
+                               };
+                       };
+               };
+       };
+
+};
+
+&csi40 {
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       csi40_in: endpoint {
+                               clock-lanes = <0>;
+                               data-lanes = <1 2 3 4>;
+                               remote-endpoint = <&adv7482_txa>;
+                       };
+               };
+       };
+};
+
+&pfc {
+       vin0_pins_parallel: vin0 {
+               groups = "vin0_data12", "vin0_sync", "vin0_clk", "vin0_clkenb";
+               function = "vin0";
+       };
+};
+
+&vin0 {
+       status = "okay";
+
+       pinctrl-0 = <&vin0_pins_parallel>;
+       pinctrl-names = "default";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@0 {
+                       reg = <0>;
+
+                       vin0_in: endpoint {
+                               pclk-sample = <0>;
+                               hsync-active = <0>;
+                               vsync-active = <0>;
+                               remote-endpoint = <&adv7612_out>;
+                       };
+               };
+       };
+};
+
+&vin1 {
+       status = "okay";
+};
+
+&vin2 {
+       status = "okay";
+};
+
+&vin3 {
+       status = "okay";
+};
index abfda5c..bc65a7b 100644 (file)
@@ -14,9 +14,9 @@
        compatible = "renesas,s4sk", "renesas,r8a779f4", "renesas,r8a779f0";
 
        aliases {
-               serial0 = &hscif0;
-               serial1 = &hscif1;
-               eth0    = &rswitch;
+               serial0 = &hscif0;
+               serial1 = &hscif1;
+               ethernet0 = &rswitch;
        };
 
        chosen {
index bc8616a..cfbe8c8 100644 (file)
 
        aliases {
                serial0 = &hscif0;
+               serial1 = &hscif2;
                ethernet0 = &avb0;
        };
 
        chosen {
-               bootargs = "ignore_loglevel";
+               bootargs = "ignore_loglevel rw root=/dev/nfs ip=on";
                stdout-path = "serial0:921600n8";
        };
 
        status = "okay";
 };
 
+&hscif2 {
+       pinctrl-0 = <&hscif2_pins>;
+       pinctrl-names = "default";
+
+       uart-has-rtscts;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0_pins>;
        pinctrl-names = "default";
 };
 
 &pfc {
-       pinctrl-0 = <&scif_clk_pins>;
+       pinctrl-0 = <&scif_clk_pins>, <&scif_clk2_pins>;
        pinctrl-names = "default";
 
        avb0_pins: avb0 {
                function = "hscif0";
        };
 
+       hscif2_pins: hscif2 {
+               groups = "hscif2_data", "hscif2_ctrl";
+               function = "hscif2";
+       };
+
        i2c0_pins: i2c0 {
                groups = "i2c0";
                function = "i2c0";
                groups = "scif_clk";
                function = "scif_clk";
        };
+
+       scif_clk2_pins: scif-clk2 {
+               groups = "scif_clk2";
+               function = "scif_clk2";
+       };
 };
 
 &rpc {
 &scif_clk {
        clock-frequency = <24000000>;
 };
+
+&scif_clk2 {
+       clock-frequency = <24000000>;
+};
index 1188572..6d79102 100644 (file)
                method = "smc";
        };
 
-       /* External SCIF clock - to be overridden by boards that provide it */
+       /* External SCIF clocks - to be overridden by boards that provide them */
        scif_clk: scif-clk {
                compatible = "fixed-clock";
                #clock-cells = <0>;
                clock-frequency = <0>;
        };
 
+       scif_clk2: scif-clk2 {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <0>;
+       };
+
        soc: soc {
                compatible = "simple-bus";
                interrupt-parent = <&gic>;
                        resets = <&cpg 917>;
                };
 
+               cmt0: timer@e60f0000 {
+                       compatible = "renesas,r8a779h0-cmt0",
+                                    "renesas,rcar-gen4-cmt0";
+                       reg = <0 0xe60f0000 0 0x1004>;
+                       interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 910>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 910>;
+                       status = "disabled";
+               };
+
+               cmt1: timer@e6130000 {
+                       compatible = "renesas,r8a779h0-cmt1",
+                                    "renesas,rcar-gen4-cmt1";
+                       reg = <0 0xe6130000 0 0x1004>;
+                       interrupts = <GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 264 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 269 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 911>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 911>;
+                       status = "disabled";
+               };
+
+               cmt2: timer@e6140000 {
+                       compatible = "renesas,r8a779h0-cmt1",
+                                    "renesas,rcar-gen4-cmt1";
+                       reg = <0 0xe6140000 0 0x1004>;
+                       interrupts = <GIC_SPI 270 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 271 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 272 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 273 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 274 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 276 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 912>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 912>;
+                       status = "disabled";
+               };
+
+               cmt3: timer@e6148000 {
+                       compatible = "renesas,r8a779h0-cmt1",
+                                    "renesas,rcar-gen4-cmt1";
+                       reg = <0 0xe6148000 0 0x1004>;
+                       interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
+                                    <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 285 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 913>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 913>;
+                       status = "disabled";
+               };
+
                cpg: clock-controller@e6150000 {
                        compatible = "renesas,r8a779h0-cpg-mssr";
                        reg = <0 0xe6150000 0 0x4000>;
                        #power-domain-cells = <1>;
                };
 
+               tsc: thermal@e6198000 {
+                       compatible = "renesas,r8a779h0-thermal";
+                       reg = <0 0xe6198000 0 0x200>,
+                             <0 0xe61a0000 0 0x200>;
+                       clocks = <&cpg CPG_MOD 919>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 919>;
+                       #thermal-sensor-cells = <1>;
+               };
+
+               intc_ex: interrupt-controller@e61c0000 {
+                       compatible = "renesas,intc-ex-r8a779h0", "renesas,irqc";
+                       #interrupt-cells = <2>;
+                       interrupt-controller;
+                       reg = <0 0xe61c0000 0 0x200>;
+                       interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 611>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 611>;
+               };
+
+               tmu0: timer@e61e0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe61e0000 0 0x30>;
+                       interrupts = <GIC_SPI 289 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 291 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2";
+                       clocks = <&cpg CPG_MOD 713>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 713>;
+                       status = "disabled";
+               };
+
+               tmu1: timer@e6fc0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe6fc0000 0 0x30>;
+                       interrupts = <GIC_SPI 292 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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 714>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 714>;
+                       status = "disabled";
+               };
+
+               tmu2: timer@e6fd0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe6fd0000 0 0x30>;
+                       interrupts = <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 715>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 715>;
+                       status = "disabled";
+               };
+
+               tmu3: timer@e6fe0000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xe6fe0000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 716>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 716>;
+                       status = "disabled";
+               };
+
+               tmu4: timer@ffc00000 {
+                       compatible = "renesas,tmu-r8a779h0", "renesas,tmu";
+                       reg = <0 0xffc00000 0 0x30>;
+                       interrupts = <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>;
+                       interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
+                       clocks = <&cpg CPG_MOD 717>;
+                       clock-names = "fck";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 717>;
+                       status = "disabled";
+               };
+
                i2c0: i2c@e6500000 {
                        compatible = "renesas,i2c-r8a779h0",
                                     "renesas,rcar-gen4-i2c";
                        status = "disabled";
                };
 
+               hscif1: serial@e6550000 {
+                       compatible = "renesas,hscif-r8a779h0",
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
+                       reg = <0 0xe6550000 0 0x60>;
+                       interrupts = <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 515>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 515>;
+                       dmas = <&dmac1 0x33>, <&dmac1 0x32>,
+                              <&dmac2 0x33>, <&dmac2 0x32>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               hscif2: serial@e6560000 {
+                       compatible = "renesas,hscif-r8a779h0",
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
+                       reg = <0 0xe6560000 0 0x60>;
+                       interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 516>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk2>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 516>;
+                       dmas = <&dmac1 0x35>, <&dmac1 0x34>,
+                              <&dmac2 0x35>, <&dmac2 0x34>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               hscif3: serial@e66a0000 {
+                       compatible = "renesas,hscif-r8a779h0",
+                                    "renesas,rcar-gen4-hscif", "renesas,hscif";
+                       reg = <0 0xe66a0000 0 0x60>;
+                       interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 517>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 517>;
+                       dmas = <&dmac1 0x37>, <&dmac1 0x36>,
+                              <&dmac2 0x37>, <&dmac2 0x36>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
                avb0: ethernet@e6800000 {
                        compatible = "renesas,etheravb-r8a779h0",
                                     "renesas,etheravb-rcar-gen4";
                        phy-mode = "rgmii";
                        rx-internal-delay-ps = <0>;
                        tx-internal-delay-ps = <0>;
+                       iommus = <&ipmmu_hc 0>;
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "disabled";
                        status = "disabled";
                };
 
+               scif0: serial@e6e60000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6e60000 0 64>;
+                       interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 702>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 702>;
+                       dmas = <&dmac1 0x51>, <&dmac1 0x50>,
+                              <&dmac2 0x51>, <&dmac2 0x50>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               scif1: serial@e6e68000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6e68000 0 64>;
+                       interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 703>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 703>;
+                       dmas = <&dmac1 0x53>, <&dmac1 0x52>,
+                              <&dmac2 0x53>, <&dmac2 0x52>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               scif3: serial@e6c50000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6c50000 0 64>;
+                       interrupts = <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 704>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 704>;
+                       dmas = <&dmac1 0x57>, <&dmac1 0x56>,
+                              <&dmac2 0x57>, <&dmac2 0x56>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               scif4: serial@e6c40000 {
+                       compatible = "renesas,scif-r8a779h0",
+                                    "renesas,rcar-gen4-scif", "renesas,scif";
+                       reg = <0 0xe6c40000 0 64>;
+                       interrupts = <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 705>,
+                                <&cpg CPG_CORE R8A779H0_CLK_SASYNCPERD1>,
+                                <&scif_clk2>;
+                       clock-names = "fck", "brg_int", "scif_clk";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 705>;
+                       dmas = <&dmac1 0x59>, <&dmac1 0x58>,
+                              <&dmac2 0x59>, <&dmac2 0x58>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       status = "disabled";
+               };
+
+               msiof0: spi@e6e90000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6e90000 0 0x0064>;
+                       interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 618>;
+                       dmas = <&dmac1 0x41>, <&dmac1 0x40>,
+                              <&dmac2 0x41>, <&dmac2 0x40>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 618>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof1: spi@e6ea0000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6ea0000 0 0x0064>;
+                       interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 619>;
+                       dmas = <&dmac1 0x43>, <&dmac1 0x42>,
+                              <&dmac2 0x43>, <&dmac2 0x42>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 619>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof2: spi@e6c00000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c00000 0 0x0064>;
+                       interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 620>;
+                       dmas = <&dmac1 0x45>, <&dmac1 0x44>,
+                              <&dmac2 0x45>, <&dmac2 0x44>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 620>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof3: spi@e6c10000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c10000 0 0x0064>;
+                       interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 621>;
+                       dmas = <&dmac1 0x47>, <&dmac1 0x46>,
+                              <&dmac2 0x47>, <&dmac2 0x46>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 621>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof4: spi@e6c20000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c20000 0 0x0064>;
+                       interrupts = <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 622>;
+                       dmas = <&dmac1 0x49>, <&dmac1 0x48>,
+                              <&dmac2 0x49>, <&dmac2 0x48>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 622>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
+               msiof5: spi@e6c28000 {
+                       compatible = "renesas,msiof-r8a779h0",
+                                    "renesas,rcar-gen4-msiof";
+                       reg = <0 0xe6c28000 0 0x0064>;
+                       interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&cpg CPG_MOD 623>;
+                       dmas = <&dmac1 0x4b>, <&dmac1 0x4a>,
+                              <&dmac2 0x4b>, <&dmac2 0x4a>;
+                       dma-names = "tx", "rx", "tx", "rx";
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       resets = <&cpg 623>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+               };
+
                dmac1: dma-controller@e7350000 {
                        compatible = "renesas,dmac-r8a779h0",
                                     "renesas,rcar-gen4-dmac";
                        resets = <&cpg 709>;
                        #dma-cells = <1>;
                        dma-channels = <16>;
+                       iommus = <&ipmmu_ds0 0>, <&ipmmu_ds0 1>,
+                                <&ipmmu_ds0 2>, <&ipmmu_ds0 3>,
+                                <&ipmmu_ds0 4>, <&ipmmu_ds0 5>,
+                                <&ipmmu_ds0 6>, <&ipmmu_ds0 7>,
+                                <&ipmmu_ds0 8>, <&ipmmu_ds0 9>,
+                                <&ipmmu_ds0 10>, <&ipmmu_ds0 11>,
+                                <&ipmmu_ds0 12>, <&ipmmu_ds0 13>,
+                                <&ipmmu_ds0 14>, <&ipmmu_ds0 15>;
                };
 
                dmac2: dma-controller@e7351000 {
                        resets = <&cpg 710>;
                        #dma-cells = <1>;
                        dma-channels = <8>;
+                       iommus = <&ipmmu_ds0 16>, <&ipmmu_ds0 17>,
+                                <&ipmmu_ds0 18>, <&ipmmu_ds0 19>,
+                                <&ipmmu_ds0 20>, <&ipmmu_ds0 21>,
+                                <&ipmmu_ds0 22>, <&ipmmu_ds0 23>;
                };
 
                mmc0: mmc@ee140000 {
                        power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
                        resets = <&cpg 706>;
                        max-frequency = <200000000>;
+                       iommus = <&ipmmu_ds0 32>;
                        status = "disabled";
                };
 
                        status = "disabled";
                };
 
+               ipmmu_rt0: iommu@ee480000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xee480000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_rt1: iommu@ee4c0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xee4c0000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_ds0: iommu@eed00000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeed00000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_hc: iommu@eed40000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeed40000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_ir: iommu@eed80000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeed80000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vc: iommu@eedc0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeedc0000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_3dg: iommu@eee00000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeee00000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vi0: iommu@eee80000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeee80000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vi1: iommu@eeec0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeeec0000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_vip0: iommu@eef00000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeef00000 0 0x20000>;
+                       renesas,ipmmu-main = <&ipmmu_mm>;
+                       power-domains = <&sysc R8A779H0_PD_C4>;
+                       #iommu-cells = <1>;
+               };
+
+               ipmmu_mm: iommu@eefc0000 {
+                       compatible = "renesas,ipmmu-r8a779h0",
+                                    "renesas,rcar-gen4-ipmmu-vmsa";
+                       reg = <0 0xeefc0000 0 0x20000>;
+                       interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
+                                    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
+                       power-domains = <&sysc R8A779H0_PD_ALWAYS_ON>;
+                       #iommu-cells = <1>;
+               };
+
                gic: interrupt-controller@f1000000 {
                        compatible = "arm,gic-v3";
                        #interrupt-cells = <3>;
                };
        };
 
+       thermal-zones {
+               sensor_thermal_cr52: sensor1-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsc 0>;
+
+                       trips {
+                               sensor1_crit: sensor1-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+
+               sensor_thermal_ca76: sensor2-thermal {
+                       polling-delay-passive = <250>;
+                       polling-delay = <1000>;
+                       thermal-sensors = <&tsc 1>;
+
+                       trips {
+                               sensor2_crit: sensor2-crit {
+                                       temperature = <120000>;
+                                       hysteresis = <1000>;
+                                       type = "critical";
+                               };
+                       };
+               };
+       };
+
        timer {
                compatible = "arm,armv8-timer";
                interrupts-extended = <&gic GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
index 8721f4c..d2365de 100644 (file)
                        gpio-ranges = <&pinctrl 0 0 152>;
                        #interrupt-cells = <2>;
                        interrupt-controller;
+                       interrupt-parent = <&irqc>;
                        clocks = <&cpg CPG_MOD R9A07G043_GPIO_HCLK>;
                        power-domains = <&cpg>;
                        resets = <&cpg R9A07G043_GPIO_RSTN>,
index 964b0a4..165bfcf 100644 (file)
        };
 };
 
-&pinctrl {
-       interrupt-parent = <&irqc>;
-};
-
 &soc {
        interrupt-parent = <&gic>;
 
index de59099..4338609 100644 (file)
@@ -5,6 +5,7 @@
  * Copyright (C) 2022 Renesas Electronics Corp.
  */
 
+#include <dt-bindings/gpio/gpio.h>
 #include "rzg2ul-smarc-pinfunction.dtsi"
 #include "rz-smarc-common.dtsi"
 
 &i2c0 {
        clock-frequency = <400000>;
 
+       da9062: pmic@58 {
+               compatible = "dlg,da9062";
+               reg = <0x58>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               gpio {
+                       compatible = "dlg,da9062-gpio";
+               };
+
+               onkey {
+                       compatible = "dlg,da9062-onkey";
+               };
+
+               pmic-good-hog {
+                       gpio-hog;
+                       gpios = <4 GPIO_ACTIVE_HIGH>;
+                       output-high;
+                       line-name = "PMIC_PGOOD";
+               };
+
+               rtc {
+                       compatible = "dlg,da9062-rtc";
+               };
+
+               sd0-pwr-sel-hog {
+                       gpio-hog;
+                       gpios = <1 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "SD0_PWR_SEL";
+               };
+
+               sd1-pwr-sel-hog {
+                       gpio-hog;
+                       gpios = <2 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "SD1_PWR_SEL";
+               };
+
+               sw-et0-en-hog {
+                       gpio-hog;
+                       gpios = <3 GPIO_ACTIVE_HIGH>;
+                       input;
+                       line-name = "SW_ET0_EN#";
+               };
+
+               thermal {
+                       compatible = "dlg,da9062-thermal";
+                       status = "disabled";
+               };
+
+               watchdog {
+                       compatible = "dlg,da9062-watchdog";
+                       status = "disabled";
+               };
+       };
+
        versa3: clock-generator@68 {
                compatible = "renesas,5p35023";
                reg = <0x68>;
index acac466..8a3d302 100644 (file)
@@ -25,7 +25,7 @@
  *     SW_OFF - SD2 is connected to SoC
  *     SW_ON  - SCIF1, SSI0, IRQ0, IRQ1 connected to SoC
  */
-#define SW_CONFIG2     SW_ON
+#define SW_CONFIG2     SW_OFF
 #define SW_CONFIG3     SW_ON
 
 / {
@@ -36,8 +36,8 @@
 #if SW_CONFIG3 == SW_OFF
                mmc2 = &sdhi2;
 #else
-               eth0 = &eth0;
-               eth1 = &eth1;
+               ethernet0 = &eth0;
+               ethernet1 = &eth1;
 #endif
        };
 
index f906a86..f42fa62 100644 (file)
@@ -10,6 +10,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3308-rock-pi-s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3318-a95x-z2.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-anbernic-rg351m.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-anbernic-rg351v.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-gameforce-chi.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go2-v11.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-odroid-go3.dtb
@@ -90,6 +91,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-a.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-quartz64-b.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-radxa-cm3-io.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-roc-pc.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-rock-3c.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-blade.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-cm4.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-soquartz-model-a.dtb
@@ -100,6 +102,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r66s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r68s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-lubancat-2.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-mecsbc.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5c.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-nanopi-r5s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-odroid-m1.dtb
@@ -107,6 +110,9 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-qnap-ts433.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-radxa-e25.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-roc-pc.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-rock-3a.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-io-expander.dtbo
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-armsom-sige7.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-coolpi-cm5-evb.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-io.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6a-wifi.dtbo
@@ -114,6 +120,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-edgeble-neu6b-io.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-evb1-v10.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-jaguar.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ok3588-c.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb
index cfc0a87..962ea89 100644 (file)
                #dma-cells = <1>;
        };
 
+       /*
+        * - can be clock producer or consumer
+        * - up to 8 capture channels and 2 playback channels
+        * - connected internally to audio codec
+        */
+       i2s_8ch_2: i2s@ff320000 {
+               compatible = "rockchip,rk3308-i2s-tdm";
+               reg = <0x0 0xff320000 0x0 0x1000>;
+               interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               clocks = <&cru SCLK_I2S2_8CH_TX>,
+                        <&cru SCLK_I2S2_8CH_RX>,
+                        <&cru HCLK_I2S2_8CH>;
+               dmas = <&dmac1 5>, <&dmac1 4>;
+               dma-names = "rx", "tx";
+               resets = <&cru SRST_I2S2_8CH_TX_M>, <&cru SRST_I2S2_8CH_RX_M>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
+       /*
+        * - can be clock consumer only
+        * - up to 4 capture channels, no playback
+        * - connected internally to audio codec
+        */
+       i2s_8ch_3: i2s@ff330000 {
+               compatible = "rockchip,rk3308-i2s-tdm";
+               reg = <0x0 0xff330000 0x0 0x1000>;
+               interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               clocks = <&cru SCLK_I2S3_8CH_TX>,
+                        <&cru SCLK_I2S3_8CH_RX>,
+                        <&cru HCLK_I2S3_8CH>;
+               dmas = <&dmac1 7>;
+               dma-names = "rx";
+               resets = <&cru SRST_I2S3_8CH_TX_M>, <&cru SRST_I2S3_8CH_RX_M>;
+               reset-names = "tx-m", "rx-m";
+               rockchip,grf = <&grf>;
+               status = "disabled";
+       };
+
        i2s_2ch_0: i2s@ff350000 {
                compatible = "rockchip,rk3308-i2s", "rockchip,rk3066-i2s";
                reg = <0x0 0xff350000 0x0 0x1000>;
                assigned-clock-rates = <32768>;
        };
 
+       codec: codec@ff560000 {
+               compatible = "rockchip,rk3308-codec";
+               reg = <0x0 0xff560000 0x0 0x10000>;
+               rockchip,grf = <&grf>;
+               clock-names = "mclk_tx", "mclk_rx", "hclk";
+               clocks = <&cru SCLK_I2S2_8CH_TX_OUT>,
+                        <&cru SCLK_I2S2_8CH_RX_OUT>,
+                        <&cru PCLK_ACODEC>;
+               reset-names = "codec-reset";
+               resets = <&cru SRST_ACODEC_P>;
+               #sound-dai-cells = <0>;
+               status = "disabled";
+       };
+
        gic: interrupt-controller@ff580000 {
                compatible = "arm,gic-400";
                reg = <0x0 0xff581000 0x0 0x1000>,
diff --git a/arch/arm64/boot/dts/rockchip/rk3326-gameforce-chi.dts b/arch/arm64/boot/dts/rockchip/rk3326-gameforce-chi.dts
new file mode 100644 (file)
index 0000000..579261b
--- /dev/null
@@ -0,0 +1,809 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Chris Morgan <macromorgan@hotmail.com>
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include "rk3326.dtsi"
+
+/ {
+       model = "GameForce Chi";
+       compatible = "gameforce,chi", "rockchip,rk3326";
+       chassis-type = "handset";
+
+       aliases {
+               mmc0 = &sdmmc;
+               mmc1 = &sdio;
+       };
+
+       chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       adc_joystick: adc-joystick {
+               compatible = "adc-joystick";
+               io-channels = <&saradc 0>,
+                             <&saradc 1>;
+               poll-interval = <100>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               axis@0 {
+                       reg = <0>;
+                       abs-flat = <10>;
+                       abs-fuzz = <10>;
+                       abs-range = <850 175>;
+                       linux,code = <ABS_Y>;
+               };
+
+               axis@1 {
+                       reg = <1>;
+                       abs-flat = <10>;
+                       abs-fuzz = <10>;
+                       abs-range = <800 190>;
+                       linux,code = <ABS_X>;
+               };
+       };
+
+       adc_keys: adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 2>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <60>;
+
+               button-1 {
+                       label = "HAPPY1";
+                       linux,code = <BTN_TRIGGER_HAPPY1>;
+                       press-threshold-microvolt = <15000>;
+               };
+
+               button-2 {
+                       label = "HAPPY2";
+                       linux,code = <BTN_TRIGGER_HAPPY2>;
+                       press-threshold-microvolt = <300000>;
+               };
+       };
+
+       backlight: backlight {
+               compatible = "pwm-backlight";
+               power-supply = <&vcc_bl>;
+               pwms = <&pwm1 0 25000 0>;
+       };
+
+       battery: battery {
+               compatible = "simple-battery";
+               charge-full-design-microamp-hours = <3000000>;
+               charge-term-current-microamp = <300000>;
+               constant-charge-current-max-microamp = <1500000>;
+               constant-charge-voltage-max-microvolt = <4200000>;
+               factory-internal-resistance-micro-ohms = <180000>;
+               ocv-capacity-celsius = <20>;
+               ocv-capacity-table-0 =  <4106000 100>, <4071000 95>, <4018000 90>, <3975000 85>,
+                                       <3946000 80>, <3908000 75>, <3877000 70>, <3853000 65>,
+                                       <3834000 60>, <3816000 55>, <3802000 50>, <3788000 45>,
+                                       <3774000 40>, <3760000 35>, <3748000 30>, <3735000 25>,
+                                       <3718000 20>, <3697000 15>, <3685000 10>, <3625000 5>,
+                                       <3400000 0>;
+               voltage-max-design-microvolt = <4250000>;
+               voltage-min-design-microvolt = <3400000>;
+       };
+
+       gpio_leds: gpio-leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_pins>;
+
+               red_led: led-0 {
+                       color = <LED_COLOR_ID_RED>;
+                       gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
+               };
+
+               green_led: led-1 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;
+               };
+
+               blue_led: led-2 {
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
+               };
+
+               white_led: led-3 {
+                       color = <LED_COLOR_ID_WHITE>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+               };
+
+               chg_led: led-4 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_CHARGING;
+                       gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
+               };
+
+       };
+
+       gpio_keys: gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-0 = <&btn_pins_ctrl>;
+               pinctrl-names = "default";
+
+               button-a {
+                       gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;
+                       label = "EAST";
+                       linux,code = <BTN_EAST>;
+               };
+
+               button-b {
+                       gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>;
+                       label = "SOUTH";
+                       linux,code = <BTN_SOUTH>;
+               };
+
+               button-down {
+                       gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-DOWN";
+                       linux,code = <BTN_DPAD_DOWN>;
+               };
+
+               button-home {
+                       gpios = <&gpio2 RK_PA0 GPIO_ACTIVE_LOW>;
+                       label = "HOME";
+                       linux,code = <BTN_MODE>;
+               };
+
+               button-l1 {
+                       gpios = <&gpio2 RK_PA6 GPIO_ACTIVE_LOW>;
+                       label = "TL";
+                       linux,code = <BTN_TL>;
+               };
+
+               button-l2 {
+                       gpios = <&gpio2 RK_PA4 GPIO_ACTIVE_LOW>;
+                       label = "TL2";
+                       linux,code = <BTN_TL2>;
+               };
+
+               button-left {
+                       gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-LEFT";
+                       linux,code = <BTN_DPAD_LEFT>;
+               };
+
+               button-r1 {
+                       gpios = <&gpio2 RK_PA7 GPIO_ACTIVE_LOW>;
+                       label = "TR";
+                       linux,code = <BTN_TR>;
+               };
+
+               button-r2 {
+                       gpios = <&gpio2 RK_PA5 GPIO_ACTIVE_LOW>;
+                       label = "TR2";
+                       linux,code = <BTN_TR2>;
+               };
+
+               button-right {
+                       gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-RIGHT";
+                       linux,code = <BTN_DPAD_RIGHT>;
+               };
+
+               button-select {
+                       gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_LOW>;
+                       label = "SELECT";
+                       linux,code = <BTN_SELECT>;
+               };
+
+               button-start {
+                       gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
+                       label = "START";
+                       linux,code = <BTN_START>;
+               };
+
+               button-up {
+                       gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
+                       label = "DPAD-UP";
+                       linux,code = <BTN_DPAD_UP>;
+               };
+
+               button-x {
+                       gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>;
+                       label = "NORTH";
+                       linux,code = <BTN_NORTH>;
+               };
+
+               button-y {
+                       gpios = <&gpio2 RK_PB2 GPIO_ACTIVE_LOW>;
+                       label = "WEST";
+                       linux,code = <BTN_WEST>;
+               };
+       };
+
+       multi-led {
+               compatible = "leds-group-multicolor";
+               color = <LED_COLOR_ID_RGB>;
+               function = LED_FUNCTION_KBD_BACKLIGHT;
+               leds = <&red_led>, <&green_led>, <&blue_led>;
+       };
+
+       spk_amp: audio-amplifier {
+               compatible = "simple-audio-amplifier";
+               enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&spk_amp_enable_h>;
+               pinctrl-names = "default";
+               sound-name-prefix = "Speaker Amp";
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-0 = <&hp_det>;
+               pinctrl-names = "default";
+               simple-audio-card,name = "rk817_ext";
+               simple-audio-card,aux-devs = <&spk_amp>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,hp-det-gpio = <&gpio2 RK_PC6 GPIO_ACTIVE_HIGH>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,widgets =
+                       "Microphone", "Mic Jack",
+                       "Headphone", "Headphones",
+                       "Speaker", "Internal Speakers";
+               simple-audio-card,routing =
+                       "MICL", "Mic Jack",
+                       "Headphones", "HPOL",
+                       "Headphones", "HPOR",
+                       "Internal Speakers", "Speaker Amp OUTL",
+                       "Internal Speakers", "Speaker Amp OUTR",
+                       "Speaker Amp INL", "HPOL",
+                       "Speaker Amp INR", "HPOR";
+               simple-audio-card,pin-switches = "Internal Speakers";
+
+               simple-audio-card,codec {
+                       sound-dai = <&rk817>;
+               };
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_2ch>;
+               };
+       };
+
+       vibrator_left: pwm-vibrator-l {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm4 0 25000 0>;
+       };
+
+       vibrator_right: pwm-vibrator-r {
+               compatible = "pwm-vibrator";
+               pwm-names = "enable";
+               pwms = <&pwm5 0 25000 0>;
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk817 1>;
+               clock-names = "ext_clock";
+               pinctrl-0 = <&wifi_enable_h>;
+               pinctrl-names = "default";
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_LOW>;
+       };
+
+       vccsys: vccsys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v8_sys";
+               regulator-always-on;
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+       };
+};
+
+&cpu0 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu1 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu2 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&cpu3 {
+       cpu-supply = <&vdd_arm>;
+};
+
+&display_subsystem {
+       status = "okay";
+};
+
+&dsi {
+       status = "okay";
+
+       internal_display: panel@0 {
+               reg = <0>;
+               compatible = "gameforce,chi-panel";
+               backlight = <&backlight>;
+               iovcc-supply = <&vcc_lcd>;
+               vcc-supply = <&vcc_lcd>;
+               reset-gpios = <&gpio3 RK_PA0 GPIO_ACTIVE_LOW>;
+
+               port {
+                       mipi_in_panel: endpoint {
+                               remote-endpoint = <&mipi_out_panel>;
+                       };
+               };
+       };
+
+       ports {
+               mipi_out: port@1 {
+                       reg = <1>;
+
+                       mipi_out_panel: endpoint {
+                               remote-endpoint = <&mipi_in_panel>;
+                       };
+               };
+       };
+};
+
+&dsi_dphy {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_logic>;
+       status = "okay";
+};
+
+&i2c0 {
+       clock-frequency = <400000>;
+       i2c-scl-falling-time-ns = <16>;
+       i2c-scl-rising-time-ns = <280>;
+       status = "okay";
+
+       rk817: pmic@20 {
+               compatible = "rockchip,rk817";
+               reg = <0x20>;
+               #clock-cells = <1>;
+               clock-names = "mclk";
+               clock-output-names = "rk808-clkout1", "xin32k";
+               clocks = <&cru SCLK_I2S1_OUT>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
+               pinctrl-names = "default";
+               #sound-dai-cells = <0>;
+               system-power-controller;
+               wakeup-source;
+
+               vcc1-supply = <&vccsys>;
+               vcc2-supply = <&vccsys>;
+               vcc3-supply = <&vccsys>;
+               vcc4-supply = <&vccsys>;
+               vcc5-supply = <&vccsys>;
+               vcc6-supply = <&vccsys>;
+               vcc7-supply = <&vcc_3v0>;
+               vcc8-supply = <&vccsys>;
+               vcc9-supply = <&dcdc_boost>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1150000>;
+                               regulator-min-microvolt = <950000>;
+                               regulator-name = "vdd_logic";
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vdd_arm: DCDC_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-min-microvolt = <950000>;
+                               regulator-name = "vdd_arm";
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <950000>;
+                               };
+                       };
+
+                       vcc_ddr: DCDC_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vcc_ddr";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_3v0: DCDC_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-name = "vcc_3v0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vcc_1v8: LDO_REG2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_1v0: LDO_REG3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-min-microvolt = <1000000>;
+                               regulator-name = "vdd_1v0";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1000000>;
+                               };
+                       };
+
+                       vcc_3v0_pmu: LDO_REG4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-min-microvolt = <3000000>;
+                               regulator-name = "vcc_3v0_pmu";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3000000>;
+                               };
+                       };
+
+                       vccio_sd: LDO_REG5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-name = "vccio_sd";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_sd: LDO_REG6 {
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_sd";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_bl: LDO_REG7 {
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_bl";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vcc_lcd: LDO_REG8 {
+                               regulator-max-microvolt = <2800000>;
+                               regulator-min-microvolt = <2800000>;
+                               regulator-name = "vcc_lcd";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <2800000>;
+                               };
+                       };
+
+                       vcc_wifi: LDO_REG9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-name = "vcc_wifi";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       dcdc_boost: BOOST {
+                               regulator-max-microvolt = <5000000>;
+                               regulator-min-microvolt = <5000000>;
+                               regulator-name = "dcdc_boost";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       otg_switch: OTG_SWITCH {
+                               regulator-name = "otg_switch";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+
+               rk817_charger: charger {
+                       monitored-battery = <&battery>;
+                       rockchip,resistor-sense-micro-ohms = <10000>;
+                       rockchip,sleep-enter-current-microamp = <300000>;
+                       rockchip,sleep-filter-current-microamp = <100000>;
+               };
+       };
+};
+
+&i2s1_2ch {
+       status = "okay";
+};
+
+&io_domains {
+       vccio1-supply = <&vcc_3v0_pmu>;
+       vccio2-supply = <&vccio_sd>;
+       vccio3-supply = <&vcc_3v0>;
+       vccio4-supply = <&vcc_3v0>;
+       vccio5-supply = <&vcc_3v0>;
+       vccio6-supply = <&vcc_3v0>;
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth-pins {
+               bt_reset: bt-reset {
+                       rockchip,pins =
+                               <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+
+               bt_wake_dev: bt-wake-dev {
+                       rockchip,pins =
+                               <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host: bt-wake-host {
+                       rockchip,pins =
+                               <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       headphone {
+               hp_det: hp-det {
+                       rockchip,pins =
+                               <2 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-btns {
+               btn_pins_ctrl: btn-pins-ctrl {
+                       rockchip,pins =
+                               <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>,
+                               <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       gpio-leds {
+               led_pins: led-pins {
+                       rockchip,pins =
+                               <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>,
+                               <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int: pmic-int {
+                       rockchip,pins =
+                               <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               soc_slppin_gpio: soc_slppin_gpio {
+                       rockchip,pins =
+                               <0 RK_PA4 RK_FUNC_GPIO &pcfg_output_low>;
+               };
+
+               soc_slppin_rst: soc_slppin_rst {
+                       rockchip,pins =
+                               <0 RK_PA4 2 &pcfg_pull_none>;
+               };
+
+               soc_slppin_slp: soc_slppin_slp {
+                       rockchip,pins =
+                               <0 RK_PA4 1 &pcfg_pull_none>;
+               };
+       };
+
+       sdio-pwrseq {
+               wifi_enable_h: wifi-enable-h {
+                       rockchip,pins =
+                               <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       speaker {
+               spk_amp_enable_h: spk-amp-enable-h {
+                       rockchip,pins =
+                               <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc_1v8>;
+       pmuio2-supply = <&vcc_3v0_pmu>;
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&pwm4 {
+       status = "okay";
+};
+
+&pwm5 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc_1v8>;
+       status = "okay";
+};
+
+&sdio {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       cap-sdio-irq;
+       disable-wp;
+       keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
+       non-removable;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
+&sdmmc {
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       no-sdio;
+       sd-uhs-sdr12;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_sd>;
+       vqmmc-supply = <&vccio_sd>;
+       status = "okay";
+};
+
+&sfc {
+       #address-cells = <1>;
+       pinctrl-0 = <&sfc_clk &sfc_cs0 &sfc_bus2>;
+       pinctrl-names = "default";
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <108000000>;
+               spi-rx-bus-width = <2>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&u2phy {
+       status = "okay";
+
+       u2phy_otg: otg-port {
+               status = "okay";
+       };
+};
+
+&usb20_otg {
+       status = "okay";
+};
+
+/*
+ * The right ADC joystick exists connected to an unknown ADC
+ * controller which can be communicated with via uart0. This ADC device
+ * is an 8-pin SOIC with no markings located right next to the left ADC
+ * joystick ribbon cable. The pinout for this ADC controller appears to
+ * be pin 1 - VCC (2.8v), pin 2 - 1.8v (clk maybe?), pin 3 - GPIO 10,
+ * pin 4 - unknown, pin 5 - unknown, pin 6 - analog in, pin 7 - analog in,
+ * pin 8 - ground. There is currently a userspace UART driver for this
+ * device but it only works with the BSP joystick driver.
+ */
+&uart0 {
+       status = "okay";
+};
+
+/*
+ * Bluetooth was not working on BSP and is not currently working on
+ * mainline due to missing firmware. Bluetooth requires removal of DMA
+ * or else it will not probe.
+ */
+&uart1 {
+       /delete-property/ dma-names;
+       /delete-property/ dmas;
+       uart-has-rtscts;
+       status = "okay";
+
+       bluetooth: bluetooth {
+               compatible = "realtek,rtl8723ds-bt";
+               device-wake-gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
+               enable-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+               host-wake-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;
+               pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
+               pinctrl-names = "default";
+       };
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m1_xfer>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&vopb {
+       status = "okay";
+};
+
+&vopb_mmu {
+       status = "okay";
+};
index b6f0450..07dcc94 100644 (file)
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu1: cpu@1 {
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu2: cpu@2 {
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                cpu3: cpu@3 {
                        cpu-idle-states = <&CPU_SLEEP>;
                        dynamic-power-coefficient = <120>;
                        enable-method = "psci";
-                       next-level-cache = <&l2>;
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <256>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l2_cache>;
                };
 
                idle-states {
                        };
                };
 
-               l2: l2-cache0 {
+               l2_cache: l2-cache {
                        compatible = "cache";
                        cache-level = <2>;
                        cache-unified;
+                       cache-size = <0x40000>;
+                       cache-line-size = <64>;
+                       cache-sets = <256>;
                };
        };
 
index b48b98c..e5c0dbf 100644 (file)
@@ -17,7 +17,7 @@
                stdout-path = "serial2:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x40000000>;
        };
index dcee2e2..23ae2d9 100644 (file)
@@ -21,7 +21,7 @@
                stdout-path = "serial2:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x80000000>;
        };
index b16b7ca..7f14206 100644 (file)
@@ -21,7 +21,7 @@
                stdout-path = "serial2:115200n8";
        };
 
-       memory {
+       memory@0 {
                device_type = "memory";
                reg = <0x0 0x0 0x0 0x40000000>;
        };
index 62af0cb..734f87d 100644 (file)
        };
 
        arm-pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
index 61f3fec..e5709c7 100644 (file)
@@ -16,7 +16,7 @@
 #include "rk3399-opp.dtsi"
 
 / {
-       model = "Pine64 PinePhonePro";
+       model = "Pine64 PinePhone Pro";
        compatible = "pine64,pinephone-pro", "rockchip,rk3399";
        chassis-type = "handset";
 
index 7baf9d1..972aea8 100644 (file)
 };
 
 &emmc_phy {
+       rockchip,enable-strobe-pulldown;
        status = "okay";
 };
 
 &sdhci {
        max-frequency = <150000000>;
        bus-width = <8>;
-       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
        non-removable;
        status = "okay";
 };
index 281a121..b9d6284 100644 (file)
 };
 
 &emmc_phy {
+       rockchip,enable-strobe-pulldown;
        status = "okay";
 };
 
 &sdhci {
        max-frequency = <150000000>;
        bus-width = <8>;
-       mmc-hs200-1_8v;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
        non-removable;
        status = "okay";
 };
index 8aa93c6..a73cf30 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353P";
+       model = "Anbernic RG353P";
        compatible = "anbernic,rg353p", "rockchip,rk3566";
 
        aliases {
index b211973..ca5284e 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353PS";
+       model = "Anbernic RG353PS";
        compatible = "anbernic,rg353ps", "rockchip,rk3566";
 
        aliases {
index f49ce29..e9954a3 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353V";
+       model = "Anbernic RG353V";
        compatible = "anbernic,rg353v", "rockchip,rk3566";
 
        aliases {
index a7dc462..90da438 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rg353x.dtsi"
 
 / {
-       model = "RG353VS";
+       model = "Anbernic RG353VS";
        compatible = "anbernic,rg353vs", "rockchip,rk3566";
 
        aliases {
index 94e6dd6..74cf313 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-anbernic-rgxx3.dtsi"
 
 / {
-       model = "RG503";
+       model = "Anbernic RG503";
        compatible = "anbernic,rg503", "rockchip,rk3566";
 
        aliases {
index 18b8c2e..233eade 100644 (file)
@@ -10,6 +10,8 @@
 #include "rk3566.dtsi"
 
 / {
+       chassis-type = "handset";
+
        chosen: chosen {
                stdout-path = "serial2:1500000n8";
        };
        cap-sdio-irq;
        keep-power-in-suspend;
        mmc-pwrseq = <&sdio_pwrseq>;
+       no-mmc;
+       no-sd;
        non-removable;
        pinctrl-0 = <&sdmmc2m0_bus4 &sdmmc2m0_cmd &sdmmc2m0_clk>;
        pinctrl-names = "default";
+       sd-uhs-sdr50;
        vmmc-supply = <&vcc_wifi>;
        vqmmc-supply = <&vcca1v8_pmu>;
        status = "okay";
index 1f567a1..952b1b2 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-powkiddy-rk2023.dtsi"
 
 / {
-       model = "RGB30";
+       model = "Powkiddy RGB30";
        compatible = "powkiddy,rgb30", "rockchip,rk3566";
 };
 
index bc9933d..72890f7 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566-powkiddy-rk2023.dtsi"
 
 / {
-       model = "RK2023";
+       model = "Powkiddy RK2023";
        compatible = "powkiddy,rk2023", "rockchip,rk3566";
 };
 
index 3ab751a..bd33271 100644 (file)
@@ -10,6 +10,8 @@
 #include "rk3566.dtsi"
 
 / {
+       chassis-type = "handset";
+
        aliases {
                mmc1 = &sdmmc0;
                mmc2 = &sdmmc1;
index 4786b19..5a648db 100644 (file)
@@ -11,6 +11,7 @@
 
 / {
        model = "Powkiddy x55";
+       chassis-type = "handset";
        compatible = "powkiddy,x55", "rockchip,rk3566";
 
        aliases {
index 59843a7..0b191d8 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566.dtsi"
 
 / {
-       model = "Pine64 RK3566 Quartz64-A Board";
+       model = "Pine64 Quartz64 Model A";
        compatible = "pine64,quartz64-a", "rockchip,rk3566";
 
        aliases {
index 2d92713..26322a3 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566.dtsi"
 
 / {
-       model = "Pine64 RK3566 Quartz64-B Board";
+       model = "Pine64 Quartz64 Model B";
        compatible = "pine64,quartz64-b", "rockchip,rk3566";
 
        aliases {
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-rock-3c.dts b/arch/arm64/boot/dts/rockchip/rk3566-rock-3c.dts
new file mode 100644 (file)
index 0000000..b242409
--- /dev/null
@@ -0,0 +1,726 @@
+// 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 <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+       model = "Radxa ROCK 3C";
+       compatible = "radxa,rock-3c", "rockchip,rk3566";
+
+       aliases {
+               ethernet0 = &gmac1;
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+               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>;
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+                       function = LED_FUNCTION_HEARTBEAT;
+                       color = <LED_COLOR_ID_BLUE>;
+                       linux,default-trigger = "heartbeat";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&user_led2>;
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               clocks = <&rk809 1>;
+               clock-names = "ext_clock";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_reg_on_h>;
+               post-power-on-delay-ms = <100>;
+               power-off-delay-us = <5000000>;
+               reset-gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+
+       vcc5v_dcin: vcc5v-dcin-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+       };
+
+       vcc3v3_pcie: vcc3v3-pcie-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie_pwr_en>;
+               regulator-name = "vcc3v3_pcie";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       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>;
+       };
+
+       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 = <&vcc5v_dcin>;
+       };
+
+       vcc5v0_usb30_host: vcc5v0-usb30-host-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_usb30_host_en>;
+               regulator-name = "vcc5v0_usb30_host";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_usb_otg: vcc5v0-usb-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC6 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_sys>;
+       };
+
+       vcc_cam: vcc-cam-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_cam_en>;
+               regulator-name = "vcc_cam";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vcc_mipi: vcc-mipi-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc_mipi_en>;
+               regulator-name = "vcc_mipi";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&combphy2 {
+       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>, <&gmac1_clkin>;
+       clock_in_out = "input";
+       phy-handle = <&rgmii_phy1>;
+       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_rgmii_bus
+                    &gmac1m1_clkinout>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vdda0v9_image>;
+       avdd-1v8-supply = <&vcca1v8_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_out_con: endpoint {
+               remote-endpoint = <&hdmi_con_in>;
+       };
+};
+
+&hdmi_sound {
+       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>;
+               clock-output-names = "rk808-clkout1", "rk808-clkout2";
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
+               system-power-controller;
+               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;
+               #clock-cells = <1>;
+
+               regulators {
+                       vdd_logic: DCDC_REG1 {
+                               regulator-name = "vdd_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <900000>;
+                               };
+                       };
+
+                       vdd_gpu: DCDC_REG2 {
+                               regulator-name = "vdd_gpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               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-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-boot-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;
+                               };
+                       };
+               };
+       };
+
+       eeprom: eeprom@50 {
+               compatible = "belling,bl24c16a", "atmel,24c16";
+               reg = <0x50>;
+               pagesize = <16>;
+       };
+};
+
+&i2s0_8ch {
+       status = "okay";
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@1 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie_reset_h>;
+       reset-gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie>;
+       status = "okay";
+};
+
+&pinctrl {
+       bluetooth {
+               bt_reg_on_h: bt-reg-on-h {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_host_h: bt-wake-host-h {
+                       rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_host_wake_h: bt-host-wake-h {
+                       rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       cam {
+               vcc_cam_en: vcc_cam_en {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       display {
+               vcc_mipi_en: vcc_mipi_en {
+                       rockchip,pins = <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               user_led2: user-led2 {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie {
+               pcie_pwr_en: pcie-pwr-en {
+                       rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie_reset_h: pcie-reset-h {
+                       rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       usb {
+               vcc5v0_usb30_host_en: vcc5v0-usb30-host-en {
+                       rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc5v0_usb_otg_en: vcc5v0-usb-otg-en {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       wifi {
+               wifi_host_wake_h: wifi-host-wake-h {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               wifi_reg_on_h: wifi-reg-on-h {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       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>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcca_1v8>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       max-frequency = <200000000>;
+       mmc-hs200-1_8v;
+       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;
+       disable-wp;
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+       sd-uhs-sdr50;
+       vmmc-supply = <&vcc3v3_sys>;
+       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_clk &sdmmc1_cmd>;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc3v3_sys>;
+       vqmmc-supply = <&vcca1v8_pmu>;
+       status = "okay";
+};
+
+&sfc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <120000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart1m0_ctsn &uart1m0_rtsn &uart1m0_xfer>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "host";
+       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_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       phy-supply = <&vcc5v0_usb_otg>;
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       phy-supply = <&vcc5v0_usb30_host>;
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index fdbf1c7..fdbb4a6 100644 (file)
@@ -10,7 +10,7 @@
 #include "rk3566-soquartz.dtsi"
 
 / {
-       model = "PINE64 RK3566 SOQuartz on Blade carrier board";
+       model = "Pine64 SOQuartz on Blade carrier board";
        compatible = "pine64,soquartz-blade", "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
index 6ed3fa4..2b6f0df 100644 (file)
@@ -5,7 +5,7 @@
 #include "rk3566-soquartz.dtsi"
 
 / {
-       model = "Pine64 RK3566 SoQuartz with CM4-IO Carrier Board";
+       model = "Pine64 SOQuartz on CM4-IO carrier board";
        compatible = "pine64,soquartz-cm4io", "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
index f2095df..9a6a632 100644 (file)
@@ -5,7 +5,7 @@
 #include "rk3566-soquartz.dtsi"
 
 / {
-       model = "PINE64 RK3566 SOQuartz on Model A carrier board";
+       model = "Pine64 SOQuartz on Model A carrier board";
        compatible = "pine64,soquartz-model-a", "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
index bfb7b95..dd4e9c1 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3566.dtsi"
 
 / {
-       model = "Pine64 RK3566 SoQuartz SOM";
+       model = "Pine64 SOQuartz system on module";
        compatible = "pine64,soquartz", "rockchip,rk3566";
 
        aliases {
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-mecsbc.dts b/arch/arm64/boot/dts/rockchip/rk3568-mecsbc.dts
new file mode 100644 (file)
index 0000000..c2dfffc
--- /dev/null
@@ -0,0 +1,404 @@
+// 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 <dt-bindings/pwm/pwm.h>
+#include "rk3568.dtsi"
+
+/ {
+       model = "Protonic MECSBC";
+       compatible = "prt,mecsbc", "rockchip,rk3568";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc0;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       tas2562-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,format = "i2s";
+               simple-audio-card,name = "Speaker";
+               simple-audio-card,mclk-fs = <256>;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&tas2562>;
+               };
+       };
+
+       vdd_gpu: regulator-vdd-gpu {
+               compatible = "pwm-regulator";
+               pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>;
+               regulator-name = "vdd_gpu";
+               regulator-min-microvolt = <915000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-settling-time-up-us = <250>;
+               pwm-dutycycle-range = <0 100>; /* dutycycle inverted 0% => 0.915V */
+       };
+
+       p3v3: regulator-p3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "p3v3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+
+       p1v8: regulator-p1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "p1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+       };
+
+       vcc_sd: regulator-sd {
+               compatible = "regulator-gpio";
+               enable-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+               gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+               regulator-name = "sdcard-gpio-supply";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               states = <1800000 0x1>, <3300000 0x0>;
+       };
+
+       vdd_npu: regulator-vdd-npu {
+               compatible = "pwm-regulator";
+               pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>;
+               regulator-name = "vdd_npu";
+               regulator-min-microvolt = <915000>;
+               regulator-max-microvolt = <1000000>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-settling-time-up-us = <250>;
+               pwm-dutycycle-range = <0 100>; /* dutycycle inverted 0% => 0.915V */
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&combphy1 {
+       status = "okay";
+};
+
+&combphy2 {
+       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>, <&cru CLK_MAC1_2TOP>;
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-id";
+       clock_in_out = "output";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1m1_miim
+                    &gmac1m1_tx_bus2
+                    &gmac1m1_rx_bus2
+                    &gmac1m1_rgmii_clk
+                    &gmac1m1_clkinout
+                    &gmac1m1_rgmii_bus>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu>;
+       status = "okay";
+};
+
+&gpu_opp_table {
+       compatible = "operating-points-v2";
+
+       opp-200000000 {
+               opp-hz = /bits/ 64 <200000000>;
+               opp-microvolt = <915000>;
+       };
+
+       opp-300000000 {
+               opp-hz = /bits/ 64 <300000000>;
+               opp-microvolt = <915000>;
+       };
+
+       opp-400000000 {
+               opp-hz = /bits/ 64 <400000000>;
+               opp-microvolt = <915000>;
+       };
+
+       opp-600000000 {
+               opp-hz = /bits/ 64 <600000000>;
+               opp-microvolt = <920000>;
+       };
+
+       opp-700000000 {
+               opp-hz = /bits/ 64 <700000000>;
+               opp-microvolt = <950000>;
+       };
+
+       opp-800000000 {
+               opp-hz = /bits/ 64 <800000000>;
+               opp-microvolt = <1000000>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       vdd_cpu: regulator@60 {
+               compatible = "fcs,fan53555";
+               reg = <0x60>;
+               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>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c2m0_xfer>;
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m0_xfer>;
+       status = "okay";
+
+       tas2562: amplifier@4c {
+               compatible = "ti,tas2562";
+               reg = <0x4c>;
+               #sound-dai-cells = <0>;
+               shutdown-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
+               interrupt-parent = <&gpio1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pinctrl_tas2562>;
+               interrupts = <RK_PD1 IRQ_TYPE_LEVEL_LOW>;
+               ti,imon-slot-no = <0>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp1075";
+               reg = <0x48>;
+       };
+
+       rtc@51 {
+               compatible = "nxp,pcf85363";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "rtcic_32kout";
+       };
+};
+
+&i2s1_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
+       rockchip,trcm-sync-tx-only;
+       status = "okay";
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@2 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&eth_phy1_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie20m1_pins>;
+       reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x2m1_pins>;
+       reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&p3v3>;
+       status = "okay";
+};
+
+&pinctrl {
+       ethernet {
+               eth_phy1_rst: eth-phy1-rst {
+                       rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       tas2562 {
+               pinctrl_tas2562: tas2562 {
+                       rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&p3v3>;
+       pmuio2-supply = <&p3v3>;
+       vccio1-supply = <&p1v8>;
+       vccio2-supply = <&p1v8>;
+       vccio3-supply = <&vcc_sd>;
+       vccio4-supply = <&p1v8>;
+       vccio5-supply = <&p3v3>;
+       vccio6-supply = <&p1v8>;
+       vccio7-supply = <&p3v3>;
+       status = "okay";
+};
+
+&pwm1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm1m0_pins>;
+};
+
+&pwm2 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm2m0_pins>;
+};
+
+&saradc {
+       vref-supply = <&p1v8>;
+       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 = <&p3v3>;
+       vqmmc-supply = <&p1v8>;
+       mmc-hs200-1_8v;
+       non-removable;
+       no-sd;
+       no-sdio;
+       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-sdr50;
+       sd-uhs-sdr104;
+       vmmc-supply = <&p3v3>;
+       vqmmc-supply = <&vcc_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 {
+       dr_mode = "host";
+       extcon = <&usb2phy0>;
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_host {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&usb2phy1 {
+       status = "okay";
+};
+
+&usb2phy1_host {
+       status = "okay";
+};
+
+&usb2phy1_otg {
+       status = "okay";
+};
index a5e974e..ebdedea 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3568.dtsi"
 
 / {
-       model = "Radxa ROCK3 Model A";
+       model = "Radxa ROCK 3A";
        compatible = "radxa,rock3a", "rockchip,rk3568";
 
        aliases {
        status = "okay";
 };
 
+&sfc {
+       #address-cells = <1>;
+       #size-cells = <0>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <104000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
 &tsadc {
        rockchip,hw-tshut-mode = <1>;
        rockchip,hw-tshut-polarity = <0>;
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-wolfvision-pf5-io-expander.dtso b/arch/arm64/boot/dts/rockchip/rk3568-wolfvision-pf5-io-expander.dtso
new file mode 100644 (file)
index 0000000..ebcaeaf
--- /dev/null
@@ -0,0 +1,137 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device tree overlay for the WolfVision PF5 IO Expander board.
+ *
+ * Copyright (C) 2024 WolfVision GmbH.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/rk3568-cru.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+
+&{/} {
+       gmac0_clkin: external-gmac0-clock {
+               compatible = "fixed-clock";
+               clock-frequency = <50000000>;
+               clock-output-names = "gmac0_clkin";
+               #clock-cells = <0>;
+       };
+
+       usb_host_vbus: usb-host-vbus-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_host_vbus_en>;
+               regulator-name = "usb_host_vbus";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       vcc1v8_eth: vcc1v8-eth-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc1v8_eth_en>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "1v8_eth";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_eth: vcc3v3-eth-regulator {
+               compatible = "regulator-fixed";
+               enable-active-low;
+               gpio = <&gpio0 RK_PC0 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc3v3_eth_enn>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "3v3_eth";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+};
+
+&gmac0 {
+       assigned-clocks = <&cru SCLK_GMAC0_RX_TX>,
+                         <&cru SCLK_GMAC0>;
+       assigned-clock-parents = <&cru SCLK_GMAC0_RMII_SPEED>,
+                                <&gmac0_clkin>;
+       clock_in_out = "input";
+       phy-handle = <&dp83826>;
+       phy-mode = "rmii";
+       phy-supply = <&vcc3v3_eth>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_clkinout
+                    &gmac0_rx_er
+                    &gmac0_rx_bus2
+                    &gmac0_tx_bus2>;
+       status = "okay";
+};
+
+&mdio0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       dp83826: ethernet-phy@0 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_EDGE_FALLING>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&eth_wake_intn &eth_phy_rstn>;
+               reset-assert-us = <1000>;
+               reset-deassert-us = <2000>;
+               reset-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_LOW>;
+               wakeup-source;
+       };
+};
+
+&pinctrl {
+       ethernet {
+               eth_wake_intn: eth-wake-intn-pinctrl {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               eth_phy_rstn: eth-phy-rstn-pinctrl {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc1v8_eth_en: vcc1v8-eth-en-pinctrl {
+                       rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc3v3_eth_enn: vcc3v3-eth-enn-pinctrl {
+                       rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               usb_host_vbus_en: usb-host-vbus-en-pinctrl {
+                       rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&usb_host1_xhci {
+       maximum-speed = "high-speed";
+       phys = <&usb2phy0_host>;
+       phy-names = "usb2-phy";
+       status = "okay";
+};
+
+&usb2phy0_host {
+       phy-supply = <&usb_host_vbus>;
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-wolfvision-pf5.dts b/arch/arm64/boot/dts/rockchip/rk3568-wolfvision-pf5.dts
new file mode 100644 (file)
index 0000000..170b14f
--- /dev/null
@@ -0,0 +1,528 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
+/*
+ * Device tree for the WolfVision PF5 mainboard.
+ *
+ * Copyright (C) 2024 WolfVision GmbH.
+ */
+
+/dts-v1/;
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/regulator/ti,tps62864.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3568.dtsi"
+
+/ {
+       model = "WolfVision PF5";
+       compatible = "wolfvision,rk3568-pf5", "rockchip,rk3568";
+
+       aliases {
+               ethernet0 = &gmac0;
+               mmc0 = &sdhci;
+               rtc0 = &pcf85623;
+               rtc1 = &rk809;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial2:115200n8";
+       };
+
+       hdmi_tx: hdmi-tx-connector {
+               compatible = "hdmi-connector";
+               hdmi-pwr-supply = <&hdmi_tx_5v>;
+               type = "a";
+
+               port {
+                       hdmi_tx_in: endpoint {
+                               remote-endpoint = <&hdmi_tx_out>;
+                       };
+               };
+       };
+
+       hdmi_tx_5v: hdmi-tx-5v-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hdmi_tx_5v_en>;
+               regulator-name = "hdmi_tx_5v";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       pdm_codec: pdm-codec {
+               compatible = "dmic-codec";
+               num-channels = <1>;
+               #sound-dai-cells = <0>;
+       };
+
+       pdm_sound: pdm-sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "microphone";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&pdm>;
+               };
+
+               simple-audio-card,codec {
+                       sound-dai = <&pdm_codec>;
+               };
+       };
+
+       vcc12v_cam: vcc12v-cam-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc12v_cam_en>;
+               regulator-name = "12v_cam";
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+               vin-supply = <&vcc12v_in>;
+       };
+
+       vcc12v_in: vcc12v-in-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "12v_in";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc3v8_cam: vcc3v8-cam-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc3v8_cam_en>;
+               regulator-name = "3v8_cam";
+               regulator-min-microvolt = <3800000>;
+               regulator-max-microvolt = <3800000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       vcc3v3_sys: vcc3v3-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "3v3_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v_in>;
+       };
+
+       vcc5v_in: vcc5v-in-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "5v_in";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc12v_in>;
+       };
+};
+
+&combphy0 {
+       status = "okay";
+};
+
+&cpu0 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&cpu1 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&cpu2 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&cpu3 {
+       cpu-supply = <&vcc0v9_cpu>;
+};
+
+&gpu {
+       mali-supply = <&vcc0v9_gpu>;
+       status = "okay";
+};
+
+&hdmi {
+       avdd-0v9-supply = <&vcc0v9a_image>;
+       avdd-1v8-supply = <&vcc1v8a_image>;
+       status = "okay";
+};
+
+&hdmi_in {
+       hdmi_in_vp0: endpoint {
+               remote-endpoint = <&vp0_out_hdmi>;
+       };
+};
+
+&hdmi_out {
+       hdmi_tx_out: endpoint {
+               remote-endpoint = <&hdmi_tx_in>;
+       };
+};
+
+&i2c0 {
+       status = "okay";
+
+       rk809: pmic@20 {
+               compatible = "rockchip,rk809";
+               reg = <0x20>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <0>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_int_l>;
+               rockchip,system-power-controller;
+               vcc1-supply = <&vcc5v_in>;
+               vcc2-supply = <&vcc5v_in>;
+               vcc3-supply = <&vcc5v_in>;
+               vcc4-supply = <&vcc5v_in>;
+               vcc5-supply = <&vcc3v3_sys>;
+               vcc6-supply = <&vcc5v_in>;
+               vcc7-supply = <&vcc3v3_sys>;
+               vcc8-supply = <&vcc3v3_sys>;
+               vcc9-supply = <&vcc3v3_sys>;
+               wakeup-source;
+
+               regulators {
+                       vcc0v9_logic: DCDC_REG1 {
+                               regulator-name = "0v9_logic";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9_gpu: DCDC_REG2 {
+                               regulator-name = "0v9_gpu";
+                               regulator-always-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <500000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v1_ddr4: DCDC_REG3 {
+                               regulator-name = "1v1_ddr4";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <0x2>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc0v9_npu: DCDC_REG4 {
+                               regulator-name = "0v9_npu";
+                               regulator-always-on;
+                               regulator-initial-mode = <0x2>;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-ramp-delay = <6001>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8: DCDC_REG5 {
+                               regulator-name = "1v8";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9a_image: LDO_REG1 {
+                               regulator-name = "0v9a_image";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9a: LDO_REG2 {
+                               regulator-name = "0v9a";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <900000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc0v9a_pmu: LDO_REG3 {
+                               regulator-name = "0v9a_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>;
+                               };
+                       };
+
+                       vcc3v3_acodec: LDO_REG4 {
+                               regulator-name = "3v3_acodec";
+                               regulator-always-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sd: LDO_REG5 {
+                               regulator-name = "3v3_sd";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_pmu: LDO_REG6 {
+                               regulator-name = "3v3_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>;
+                               };
+                       };
+
+                       vcc1v8a: LDO_REG7 {
+                               regulator-name = "1v8a";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc1v8a_pmu: LDO_REG8 {
+                               regulator-name = "1v8a_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>;
+                               };
+                       };
+
+                       vcc1v8a_image: LDO_REG9 {
+                               regulator-name = "1v8a_image";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc3v3_sw: SWITCH_REG1 {
+                               regulator-name = "3v3_sw";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       regulator@42 {
+               compatible = "ti,tps62869";
+               reg = <0x42>;
+
+               regulators {
+                       vcc0v9_cpu: SW {
+                               regulator-name = "0v9_cpu";
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-initial-mode = <TPS62864_MODE_FPWM>;
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1150000>;
+                               vin-supply = <&vcc5v_in>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+
+       pcf85623: rtc@51 {
+               compatible = "nxp,pcf85263";
+               reg = <0x51>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&clk32k_in>;
+               quartz-load-femtofarads = <12500>;
+       };
+};
+
+&i2c3 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c3m0_xfer>;
+};
+
+&i2c4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c4m1_xfer>;
+};
+
+&pdm {
+       pinctrl-0 = <&pdmm0_clk
+                    &pdmm0_sdi0>;
+       status = "okay";
+};
+
+&pinctrl {
+       cam {
+               vcc12v_cam_en: vcc12v-cam-en-pinctrl {
+                       rockchip,pins = <2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               vcc3v8_cam_en: vcc3v8-cam-en-pinctrl {
+                       rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       hdmitx {
+               hdmi_tx_5v_en: hdmi-tx-5v-en-pinctrl {
+                       rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pmic {
+               pmic_int_l: pmic-int-l-pinctrl {
+                       rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pmu_io_domains {
+       pmuio1-supply = <&vcc3v3_pmu>;
+       pmuio2-supply = <&vcc3v3_pmu>;
+       vccio1-supply = <&vcc3v3_acodec>;
+       vccio2-supply = <&vcc1v8>;
+       vccio3-supply = <&vcc3v3_sd>;
+       vccio4-supply = <&vcc1v8>;
+       vccio5-supply = <&vcc1v8>;
+       vccio6-supply = <&vcc3v3_sw>;
+       vccio7-supply = <&vcc3v3_sw>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&vcc1v8a>;
+       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 = <&vcc3v3_sw>;
+       vqmmc-supply = <&vcc1v8>;
+       status = "okay";
+};
+
+&tsadc {
+       rockchip,hw-tshut-mode = <1>;
+       rockchip,hw-tshut-polarity = <0>;
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "peripheral";
+       /* The following quirks are required since the bInterval is 1 and we
+        * handle steady ISOC streaming. See Usecase 3 in commit 729dcffd1ed3
+        * ("usb: dwc3: gadget: Add support for disabling U1 and U2 entries").
+        */
+       snps,dis-u1-entry-quirk;
+       snps,dis-u2-entry-quirk;
+       /*
+        * Without this quirk the available fifosize seems to be miscalculated
+        * in cases where many endpoints are used. In one particular situation
+        * 8 IN EPs and 3 OUT EPs where selected and lead to stalled transfers
+        * without the resize quirk.
+        */
+       tx-fifo-resize;
+
+       status = "okay";
+};
+
+&usb2phy0 {
+       status = "okay";
+};
+
+&usb2phy0_otg {
+       status = "okay";
+};
+
+&vop {
+       assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP2>;
+       assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
+       status = "okay";
+};
+
+&vop_mmu {
+       status = "okay";
+};
+
+&vp0 {
+       vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+               reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+               remote-endpoint = <&hdmi_in_vp0>;
+       };
+};
index 92f96ec..d8543b5 100644 (file)
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
 
                cpu1: cpu@100 {
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
 
                cpu2: cpu@200 {
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
 
                cpu3: cpu@300 {
                        #cooling-cells = <2>;
                        enable-method = "psci";
                        operating-points-v2 = <&cpu0_opp_table>;
+                       i-cache-size = <0x8000>;
+                       i-cache-line-size = <64>;
+                       i-cache-sets = <128>;
+                       d-cache-size = <0x8000>;
+                       d-cache-line-size = <64>;
+                       d-cache-sets = <128>;
+                       next-level-cache = <&l3_cache>;
                };
        };
 
+       /*
+        * There are no private per-core L2 caches, but only the
+        * L3 cache that appears to the CPU cores as L2 caches
+        */
+       l3_cache: l3-cache {
+               compatible = "cache";
+               cache-level = <2>;
+               cache-unified;
+               cache-size = <0x80000>;
+               cache-line-size = <64>;
+               cache-sets = <512>;
+       };
+
        cpu0_opp_table: opp-table-0 {
                compatible = "operating-points-v2";
                opp-shared;
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts b/arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts
new file mode 100644 (file)
index 0000000..98c622b
--- /dev/null
@@ -0,0 +1,721 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include "rk3588.dtsi"
+
+/ {
+       model = "ArmSoM Sige7";
+       compatible = "armsom,sige7", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+               mmc1 = &sdmmc;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       analog-sound {
+               compatible = "audio-graph-card";
+               dais = <&i2s0_8ch_p0>;
+               label = "rk3588-es8316";
+               hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               routing = "MIC2", "Mic Jack",
+                         "Headphones", "HPOL",
+                         "Headphones", "HPOR";
+               widgets = "Microphone", "Mic Jack",
+                         "Headphone", "Headphones";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_rgb_g>;
+
+               led_green: led-0 {
+                       color = <LED_COLOR_ID_GREEN>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led_red: led-1 {
+                       color = <LED_COLOR_ID_RED>;
+                       function = LED_FUNCTION_STATUS;
+                       gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "none";
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <0 95 145 195 255>;
+               fan-supply = <&vcc5v0_sys>;
+               pwms = <&pwm1 0 50000 0>;
+               #cooling-cells = <2>;
+       };
+
+       vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l2";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc_3v3_s3>;
+       };
+
+       vcc3v3_pcie30: vcc3v3-pcie30-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+               regulator-name = "vcc3v3_pcie30";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       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>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v1_nldo_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy1_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hym8563_int>;
+               wakeup-source;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       es8316: audio-codec@11 {
+               compatible = "everest,es8316";
+               reg = <0x11>;
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               clock-names = "mclk";
+               #sound-dai-cells = <0>;
+
+               port {
+                       es8316_p0_0: endpoint {
+                               remote-endpoint = <&i2s0_8ch_p0_0>;
+                       };
+               };
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+
+       i2s0_8ch_p0: port {
+               i2s0_8ch_p0_0: endpoint {
+                       dai-format = "i2s";
+                       mclk-fs = <256>;
+                       remote-endpoint = <&es8316_p0_0>;
+               };
+       };
+};
+
+/* phy1 - right ethernet port */
+&pcie2x1l0 {
+       reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+/* phy2 - WiFi */
+&pcie2x1l1 {
+       reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+/* phy0 - left ethernet port */
+&pcie2x1l2 {
+       reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
+
+&pinctrl {
+       hym8563 {
+               hym8563_int: hym8563-int {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       leds {
+               led_rgb_g: led-rgb-g {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               led_rgb_r: led-rgb-r {
+                       rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sound {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&pwm1 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdhci {
+       bus-width = <8>;
+       no-sdio;
+       no-sd;
+       non-removable;
+       mmc-hs200-1_8v;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       disable-wp;
+       max-frequency = <200000000>;
+       no-sdio;
+       no-mmc;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vcc_3v3_s3>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       status = "okay";
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               spi-max-frequency = <1000000>;
+               reg = <0x0>;
+
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
+
+&usbdp_phy1 {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
index 94ecb9b..fde8b22 100644 (file)
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index c0d4a15..709d348 100644 (file)
                pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
                            <&rk806_dvs2_null>, <&rk806_dvs3_null>;
 
+               system-power-controller;
+
                vcc1-supply = <&vcc5v0_sys>;
                vcc2-supply = <&vcc5v0_sys>;
                vcc3-supply = <&vcc5v0_sys>;
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index 963e880..7b13178 100644 (file)
        status = "okay";
 };
 
+&combphy2_psu {
+       status = "okay";
+};
+
 &i2c6 {
        status = "okay";
 
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usb_host2_xhci {
+       status = "okay";
+};
index de30c26..7be2190 100644 (file)
@@ -9,6 +9,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/usb/pd.h>
 #include "rk3588.dtsi"
 
 / {
                vin-supply = <&avcc_1v8_s0>;
        };
 
+       vbus5v0_typec: vbus5v0-typec-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&typec5v_pwren>;
+               regulator-name = "vbus5v0_typec";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               vin-supply = <&vcc5v0_usb>;
+       };
+
        vcc12v_dcin: vcc12v-dcin-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc12v_dcin";
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       sram-supply = <&vdd_gpu_mem_s0>;
+       status = "okay";
+};
+
 &i2c2 {
        status = "okay";
 
+       usbc0: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio3>;
+               interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vbus5v0_typec>;
+               status = "okay";
+
+               usb_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       data-role = "dual";
+                       op-sink-microwatt = <1000000>;
+                       power-role = "dual";
+                       sink-pdos =
+                               <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
+                       source-pdos =
+                               <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "source";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+
+                                       dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                        rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       usb-typec {
+               typec5v_pwren: typec5v-pwren {
+                       rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               usbc0_int: usbc0-int {
+                       rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
 };
 
 &pwm2 {
 
                regulators {
                        vdd_gpu_s0: dcdc-reg1 {
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
                                regulator-name = "vdd_gpu_s0";
                                regulator-enable-ramp-delay = <400>;
+                               regulator-coupled-with = <&vdd_gpu_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-state-mem {
                                        regulator-off-in-suspend;
                                };
                        };
 
                        vdd_gpu_mem_s0: dcdc-reg5 {
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
                                regulator-enable-ramp-delay = <400>;
                                regulator-name = "vdd_gpu_mem_s0";
+                               regulator-coupled-with = <&vdd_gpu_s0>;
+                               regulator-coupled-max-spread = <10000>;
                                regulator-state-mem {
                                        regulator-off-in-suspend;
                                };
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
 &usb_host1_ohci {
        status = "okay";
 };
+
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&dp_altmode_mux>;
+               };
+       };
+};
+
+&usbdp_phy1 {
+       /*
+        * USBDP PHY1 is wired to a female USB3 Type-A connector. Additionally
+        * the differential pairs 2+3 and the aux channel are wired to a RTD2166,
+        * which converts the DP signal into VGA. This is exposed on the
+        * board via a female VGA connector.
+        */
+       rockchip,dp-lane-mux = <2 3>;
+       status = "okay";
+};
+
+&usb_host0_xhci {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               dwc3_0_role_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-fet3588-c.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-fet3588-c.dtsi
new file mode 100644 (file)
index 0000000..47e64d5
--- /dev/null
@@ -0,0 +1,558 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include "rk3588.dtsi"
+
+/ {
+       compatible = "forlinx,fet3588-c", "rockchip,rk3588";
+
+       aliases {
+               mmc0 = &sdhci;
+       };
+
+       chosen {
+               stdout-path = "serial2:1500000n8";
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               pinctrl-names = "default";
+               pinctrl-0 = <&led_rgb_b>;
+
+               io-led {
+                       function = LED_FUNCTION_STATUS;
+                       color = <LED_COLOR_ID_BLUE>;
+                       gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       pcie20_avdd0v85: pcie20-avdd0v85-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie20_avdd0v85";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <850000>;
+               regulator-max-microvolt = <850000>;
+               vin-supply = <&vdd_0v85_s0>;
+       };
+
+       pcie20_avdd1v8: pcie20-avdd1v8-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie20_avdd1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+
+       pcie30_avdd0v75: pcie30-avdd0v75-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie30_avdd0v75";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <750000>;
+               regulator-max-microvolt = <750000>;
+               vin-supply = <&avdd_0v75_s0>;
+       };
+
+       pcie30_avdd1v8: pcie30-avdd1v8-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "pcie30_avdd1v8";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&avcc_1v8_s0>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v1_nldo_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc4v0_sys: vcc4v0-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc4v0_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <4000000>;
+               regulator-max-microvolt = <4000000>;
+               vin-supply = <&vcc12v_dcin>;
+       };
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy1_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+       mem-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+       mem-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+       mem-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+       mem-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+       mem-supply = <&vdd_cpu_lit_mem_s0>;
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c1 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c1m2_xfer>;
+
+       vdd_npu_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_npu_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <950000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc4v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&pinctrl {
+       leds {
+               led_rgb_b: led-rgb-b {
+                       rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+};
+
+&sdhci {
+       bus-width = <8>;
+       mmc-hs400-1_8v;
+       mmc-hs400-enhanced-strobe;
+       no-sdio;
+       no-sd;
+       non-removable;
+       status = "okay";
+};
+
+&spi2 {
+       status = "okay";
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       num-cs = <1>;
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               spi-max-frequency = <1000000>;
+               reg = <0x0>;
+
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-enable-ramp-delay = <400>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_cpu_lit_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_log_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_vdenc_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
+&uart2 {
+       pinctrl-0 = <&uart2m0_xfer>;
+       status = "okay";
+};
index 39d6500..31d2f89 100644 (file)
                };
        };
 
+       /*
+        * 100MHz reference clock for PCIe peripherals from PI6C557-05BLE
+        * clock generator.
+        * The clock output is gated via the OE pin on the clock generator.
+        * This is modeled as a fixed-clock plus a gpio-gate-clock.
+        */
+       pcie_refclk_gen: pcie-refclk-gen-clock {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-frequency = <100000000>;
+       };
+
+       pcie_refclk: pcie-refclk-clock {
+               compatible = "gpio-gate-clock";
+               clocks = <&pcie_refclk_gen>;
+               #clock-cells = <0>;
+               enable-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>; /* PCIE30X4_CLKREQN_M0 */
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie30x4_clkreqn_m0>;
+       };
+
        pps {
                compatible = "pps-gpio";
                gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
        };
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
        status = "okay";
 };
 
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       /*
+        * The board has a gpio-controlled "pcie_refclk" generator,
+        * so add it to the list of clocks.
+        */
+       clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
+                <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
+                <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>,
+                <&pcie_refclk>;
+       clock-names = "aclk_mst", "aclk_slv",
+                     "aclk_dbi", "pclk",
+                     "aux", "pipe",
+                     "ref";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie30x4_waken_m0 &pcie30x4_perstn_m0>;
+       reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>; /* PCIE30X4_PERSTN_M0 */
+       vpcie3v3-supply = <&vcc3v3_mdot2>;
+       status = "okay";
+};
+
 &pinctrl {
        emmc {
                emmc_reset: emmc-reset {
                        rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       pcie30x4 {
+               pcie30x4_clkreqn_m0: pcie30x4-clkreqn-m0 {
+                       rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x4_perstn_m0: pcie30x4-perstn-m0 {
+                       rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie30x4_waken_m0: pcie30x4-waken-m0 {
+                       rockchip,pins = <0 RK_PC7 12 &pcfg_pull_none>;
+               };
+       };
 };
 
 &saradc {
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-ok3588-c.dts b/arch/arm64/boot/dts/rockchip/rk3588-ok3588-c.dts
new file mode 100644 (file)
index 0000000..009566d
--- /dev/null
@@ -0,0 +1,409 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+#include "rk3588-fet3588-c.dtsi"
+
+/ {
+       model = "Forlinx OK3588-C Board";
+       compatible = "forlinx,ok3588-c", "forlinx,fet3588-c", "rockchip,rk3588";
+
+       aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+               mmc1 = &sdmmc;
+       };
+
+       adc-keys-0 {
+               compatible = "adc-keys";
+               io-channels = <&saradc 0>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-maskrom {
+                       label = "Maskrom";
+                       linux,code = <KEY_SETUP>;
+                       press-threshold-microvolt = <400>;
+               };
+       };
+
+       adc-keys-1 {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-volume-up {
+                       label = "V+/Recovery";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <17000>;
+               };
+
+               button-volume-down {
+                       label = "V-";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <417000>;
+               };
+
+               button-menu {
+                       label = "Menu";
+                       linux,code = <KEY_MENU>;
+                       press-threshold-microvolt = <890000>;
+               };
+
+               button-escape {
+                       label = "ESC";
+                       linux,code = <KEY_ESC>;
+                       press-threshold-microvolt = <1235000>;
+               };
+       };
+
+       fan: pwm-fan {
+               compatible = "pwm-fan";
+               cooling-levels = <0 95 145 195 255>;
+               fan-supply = <&vcc12v_dcin>;
+               pwms = <&pwm2 0 50000 0>;
+               #cooling-cells = <2>;
+       };
+
+       sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               simple-audio-card,name = "RK3588 OK3588-C Audio";
+               simple-audio-card,bitclock-master = <&masterdai>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&masterdai>;
+               simple-audio-card,hp-det-gpio = <&gpio1 RK_PB2 GPIO_ACTIVE_HIGH>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,pin-switches = "Headphones", "Speaker";
+               simple-audio-card,widgets =
+                       "Headphones", "Headphones",
+                       "Speaker", "Speaker",
+                       "Microphone", "Internal Microphone",
+                       "Microphone", "Headset Microphone";
+               simple-audio-card,routing =
+                       "Headphones", "LHP",
+                       "Headphones", "RHP",
+                       "Speaker", "LSPK",
+                       "Speaker", "RSPK",
+                       "LMICP", "Headset Microphone",
+                       "RMICP", "Internal Microphone";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s0_8ch>;
+               };
+
+               masterdai: simple-audio-card,codec {
+                       sound-dai = <&nau8822>;
+               };
+       };
+
+       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>;
+       };
+
+       vcc1v8_sys: vcc1v8-sys-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_sys";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc3v3_sys>;
+       };
+
+       vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l0";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <50000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie2x1l2";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc3v3_pcie30: vcc3v3_pcie30-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_pcie30";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       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>;
+       };
+
+       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 = <&vcc12v_dcin>;
+       };
+};
+
+&gmac0 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy0>;
+       phy-mode = "rgmii-rxid";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac0_miim
+                    &gmac0_tx_bus2
+                    &gmac0_rx_bus2
+                    &gmac0_rgmii_clk
+                    &gmac0_rgmii_bus>;
+       tx_delay = <0x44>;
+       rx_delay = <0x00>;
+       status = "okay";
+};
+
+&gmac1 {
+       clock_in_out = "output";
+       phy-handle = <&rgmii_phy1>;
+       phy-mode = "rgmii-rxid";
+       pinctrl-names = "default";
+       pinctrl-0 = <&gmac1_miim
+                    &gmac1_tx_bus2
+                    &gmac1_rx_bus2
+                    &gmac1_rgmii_clk
+                    &gmac1_rgmii_bus>;
+       tx_delay = <0x44>;
+       rx_delay = <0x00>;
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c2 {
+       status = "okay";
+
+       tca6424a: gpio@23 {
+               compatible = "ti,tca6424";
+               reg = <0x23>;
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               interrupt-parent = <&gpio1>;
+               interrupts = <RK_PA4 IRQ_TYPE_EDGE_FALLING>;
+               interrupt-controller;
+               #interrupt-cells = <2>;
+
+               pinctrl-names = "default";
+               pinctrl-0 = <&tca6424a_int>;
+               vcc-supply = <&vcc3v3_sys>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c5m2_xfer>;
+
+       pcf8563: rtc@51 {
+               compatible = "nxp,pcf8563";
+               reg = <0x51>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       nau8822: audio-codec@1a {
+               compatible = "nuvoton,nau8822";
+               reg = <0x1a>;
+               clocks = <&cru I2S0_8CH_MCLKOUT>;
+               clock-names = "mclk";
+               assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               #sound-dai-cells = <0>;
+       };
+};
+
+&i2s0_8ch {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s0_lrck
+                    &i2s0_mclk
+                    &i2s0_sclk
+                    &i2s0_sdi0
+                    &i2s0_sdo0>;
+       status = "okay";
+};
+
+&mdio0 {
+       rgmii_phy0: ethernet-phy@1 {
+               /* RTL8211F */
+               compatible = "ethernet-phy-id001c.c916",
+                            "ethernet-phy-ieee802.3-c22";
+               reg = <0x1>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtl8211f_0_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&mdio1 {
+       rgmii_phy1: ethernet-phy@2 {
+               /* RTL8211F */
+               compatible = "ethernet-phy-id001c.c916",
+                            "ethernet-phy-ieee802.3-c22";
+               reg = <0x2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&rtl8211f_1_rst>;
+               reset-assert-us = <20000>;
+               reset-deassert-us = <100000>;
+               reset-gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>;
+       };
+};
+
+&pcie2x1l0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_0_rst>;
+       reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie2x1l0>;
+       status = "okay";
+};
+
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie2x1l2>;
+       status = "okay";
+};
+
+&pcie30phy {
+       status = "okay";
+};
+
+&pcie3x4 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie3_rst>;
+       reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie30>;
+       status = "okay";
+};
+
+&pinctrl {
+       pcie2 {
+               pcie2_0_rst: pcie2-0-rst {
+                       rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_2_rst: pcie2-2-rst {
+                       rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       pcie3 {
+               pcie3_rst: pcie3-rst {
+                       rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       rtl8211f {
+               rtl8211f_0_rst: rtl8211f-0-rst {
+                       rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+               rtl8211f_1_rst: rtl8211f-1-rst {
+                       rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       sound {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       tca6424a {
+               tca6424a_int: tca6424a-int {
+                       rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+};
+
+&pwm2 {
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
+};
+
+&sdmmc {
+       bus-width = <4>;
+       cap-mmc-highspeed;
+       cap-sd-highspeed;
+       cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
+       disable-wp;
+       max-frequency = <150000000>;
+       no-sdio;
+       no-mmc;
+       sd-uhs-sdr104;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
index 22bbfbe..b4f22d9 100644 (file)
@@ -13,7 +13,7 @@
 #include "rk3588.dtsi"
 
 / {
-       model = "PINE64 QuartzPro64";
+       model = "Pine64 QuartzPro64";
        compatible = "pine64,quartzpro64", "rockchip,rk3588";
 
        aliases {
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       sram-supply = <&vdd_gpu_mem_s0>;
+       status = "okay";
+};
+
 &i2c2 {
        status = "okay";
 
                regulators {
                        vdd_gpu_s0: dcdc-reg1 {
                                regulator-name = "vdd_gpu_s0";
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-enable-ramp-delay = <400>;
                                regulator-min-microvolt = <550000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
+                               regulator-coupled-with = <&vdd_gpu_mem_s0>;
+                               regulator-coupled-max-spread = <10000>;
 
                                regulator-state-mem {
                                        regulator-off-in-suspend;
 
                        vdd_gpu_mem_s0: dcdc-reg5 {
                                regulator-name = "vdd_gpu_mem_s0";
+                               /* regulator coupling requires always-on */
+                               regulator-always-on;
                                regulator-boot-on;
                                regulator-enable-ramp-delay = <400>;
                                regulator-min-microvolt = <675000>;
                                regulator-max-microvolt = <950000>;
                                regulator-ramp-delay = <12500>;
+                               regulator-coupled-with = <&vdd_gpu_s0>;
+                               regulator-coupled-max-spread = <10000>;
 
                                regulator-state-mem {
                                        regulator-off-in-suspend;
index 1fe8b2a..b8e15b7 100644 (file)
@@ -7,7 +7,7 @@
 #include "rk3588.dtsi"
 
 / {
-       model = "Radxa ROCK 5 Model B";
+       model = "Radxa ROCK 5B";
        compatible = "radxa,rock-5b", "rockchip,rk3588";
 
        aliases {
        cpu-supply = <&vdd_cpu_lit_s0>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
 };
 
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy1 {
+       status = "okay";
+};
+
 &usb_host0_ehci {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usb_host2_xhci {
        status = "okay";
 };
index d672198..e4b7a0a 100644 (file)
                vin-supply = <&dc_12v>;
        };
 
+       vcc5v0_otg: vcc5v0-otg-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&otg_vbus_drv>;
+               regulator-name = "vcc5v0_otg";
+               regulator-always-on;
+       };
+
        vcc5v0_usb: vcc5v0-usb-regulator {
                compatible = "regulator-fixed";
                regulator-name = "vcc5v0_usb";
        status = "okay";
 };
 
+&extcon_usb3 {
+       status = "okay";
+};
+
 &gmac0 {
        status = "okay";
 };
                                <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>;
                };
        };
+
+       usb2 {
+               otg_vbus_drv: otg-vbus-drv {
+                       rockchip,pins =
+                         <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &sdmmc {
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       phy-supply = <&vcc5v0_otg>;
+       status = "okay";
+};
+
+&u2phy1 {
+       status = "okay";
+};
+
+&u2phy1_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
 };
 
 &uart2 {
-       pinctrl-0 = <&uart2m2_xfer>;
        status = "okay";
 };
 
 &uart5 {
        rts-gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>;
+};
+
+&usbdp_phy0 {
        status = "okay";
 };
 
-/* host0 on Q7_USB_P2, lower usb3 port */
+&usbdp_phy1 {
+       status = "okay";
+};
+
+/* host0 on Q7_USB_P2, upper usb3 port */
 &usb_host0_ehci {
        status = "okay";
 };
 
-/* host0 on Q7_USB_P2, lower usb3 port */
+/* host0 on Q7_USB_P2, upper usb3 port */
 &usb_host0_ohci {
        status = "okay";
 };
 
+/* host0_xhci on Q7_USB_P1, usb3-otg port */
+&usb_host0_xhci {
+       dr_mode = "otg";
+       extcon = <&extcon_usb3>;
+       status = "okay";
+};
+
 /* host1 on Q7_USB_P3, usb2 port */
 &usb_host1_ehci {
        status = "okay";
        status = "okay";
 };
 
-/* host2 on Q7_USB_P2, lower usb3 port */
+/* host1_xhci on Q7_USB_P0, lower usb3 port */
+&usb_host1_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
+/* host2 on Q7_USB_P2, upper usb3 port */
 &usb_host2_xhci {
        status = "okay";
 };
index 1eb2543..aebe1fe 100644 (file)
                reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
        };
 
+       extcon_usb3: extcon-usb3 {
+               compatible = "linux,extcon-usb-gpio";
+               id-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb3_id>;
+               status = "disabled";
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
@@ -46,7 +54,7 @@
        pcie_refclk_gen: pcie-refclk-gen-clock {
                compatible = "fixed-clock";
                #clock-cells = <0>;
-               clock-frequency = <1000000000>;
+               clock-frequency = <100000000>;
        };
 
        pcie_refclk: pcie-refclk-clock {
        snps,reset-delays-us = <0 10000 100000>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c1 {
        pinctrl-0 = <&i2c1m0_xfer>;
 };
                        rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       usb3 {
+               usb3_id: usb3-id {
+                       rockchip,pins =
+                         <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };
 
 &saradc {
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        status = "okay";
 };
 
+/* Routed to UART0 on the Q7 connector */
+&uart2 {
+       pinctrl-0 = <&uart2m2_xfer>;
+};
+
 /* Mule-ATtiny UPDI */
 &uart4 {
        pinctrl-0 = <&uart4m2_xfer>;
index dc08da5..6b9206c 100644 (file)
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index 5519c14..5984016 100644 (file)
@@ -7,6 +7,26 @@
 #include "rk3588-pinctrl.dtsi"
 
 / {
+       usb_host1_xhci: usb@fc400000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfc400000 0x0 0x400000>;
+               interrupts = <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG1>, <&cru SUSPEND_CLK_USB3OTG1>,
+                        <&cru ACLK_USB3OTG1>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk";
+               dr_mode = "otg";
+               phys = <&u2phy1_otg>, <&usbdp_phy1 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3588_PD_USB>;
+               resets = <&cru SRST_A_USB3OTG1>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               status = "disabled";
+       };
+
        pcie30_phy_grf: syscon@fd5b8000 {
                compatible = "rockchip,rk3588-pcie3-phy-grf", "syscon";
                reg = <0x0 0xfd5b8000 0x0 0x10000>;
                reg = <0x0 0xfd5c0000 0x0 0x100>;
        };
 
+       usbdpphy1_grf: syscon@fd5cc000 {
+               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
+               reg = <0x0 0xfd5cc000 0x0 0x4000>;
+       };
+
+       usb2phy1_grf: syscon@fd5d4000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d4000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy1: usb2phy@4000 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x4000 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy1";
+                       interrupts = <GIC_SPI 394 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U3_1>, <&cru SRST_P_USB2PHY_U3_1_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy1_otg: otg-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
        i2s8_8ch: i2s@fddc8000 {
                compatible = "rockchip,rk3588-i2s-tdm";
                reg = <0x0 0xfddc8000 0x0 0x1000>;
                };
        };
 
+       usbdp_phy1: phy@fed90000 {
+               compatible = "rockchip,rk3588-usbdp-phy";
+               reg = <0x0 0xfed90000 0x0 0x10000>;
+               #phy-cells = <1>;
+               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+                        <&cru CLK_USBDP_PHY1_IMMORTAL>,
+                        <&cru PCLK_USBDPPHY1>,
+                        <&u2phy1>;
+               clock-names = "refclk", "immortal", "pclk", "utmi";
+               resets = <&cru SRST_USBDP_COMBO_PHY1_INIT>,
+                        <&cru SRST_USBDP_COMBO_PHY1_CMN>,
+                        <&cru SRST_USBDP_COMBO_PHY1_LANE>,
+                        <&cru SRST_USBDP_COMBO_PHY1_PCS>,
+                        <&cru SRST_P_USBDPPHY1>;
+               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+               rockchip,u2phy-grf = <&usb2phy1_grf>;
+               rockchip,usb-grf = <&usb_grf>;
+               rockchip,usbdpphy-grf = <&usbdpphy1_grf>;
+               rockchip,vo-grf = <&vo0_grf>;
+               status = "disabled";
+       };
+
        combphy1_ps: phy@fee10000 {
                compatible = "rockchip,rk3588-naneng-combphy";
                reg = <0x0 0xfee10000 0x0 0x100>;
index e037bf9..3b2ec1d 100644 (file)
        cpu-supply = <&vdd_cpu_big1_s0>;
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-0 = <&i2c0m2_xfer>;
        status = "okay";
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
index ce8119c..d8c50fd 100644 (file)
                pinctrl-names = "default";
                vbus-supply = <&vbus5v0_typec>;
 
-               connector {
+               usb_con: connector {
                        compatible = "usb-c-connector";
                        data-role = "dual";
                        label = "USB-C";
                        source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
                        sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
                        op-sink-microwatt = <1000000>;
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_orien_sw: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_orientation_switch>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_role_sw: endpoint {
+                                               remote-endpoint = <&dwc3_0_role_switch>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       dp_altmode_mux: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
+                                       };
+                               };
+                       };
                };
        };
 
                vcca-supply = <&vcc5v0_sys>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host0_xhci {
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               dwc3_0_role_switch: endpoint {
+                       remote-endpoint = <&usbc0_role_sw>;
+               };
+       };
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
 &usb_host2_xhci {
        status = "okay";
 };
+
+&usbdp_phy0 {
+       orientation-switch;
+       mode-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
+       rockchip,dp-lane-mux = <2 3>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_orientation_switch: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_orien_sw>;
+               };
+
+               usbdp_phy0_dp_altmode_mux: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&dp_altmode_mux>;
+               };
+       };
+};
index f53e993..dbddfc3 100644 (file)
@@ -3,7 +3,9 @@
 /dts-v1/;
 
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/leds/common.h>
 #include "rk3588s.dtsi"
 
 / {
 
        aliases {
                mmc0 = &sdhci;
+               mmc1 = &sdmmc;
        };
 
        chosen {
                stdout-path = "serial2:1500000n8";
        };
+
+       adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-function {
+                       label = "Function";
+                       linux,code = <KEY_FN>;
+                       press-threshold-microvolt = <17000>;
+               };
+       };
+
+       ir-receiver {
+               compatible = "gpio-ir-receiver";
+               gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ir_receiver_pin>;
+       };
+
+       leds {
+               compatible = "pwm-leds";
+
+               red_led: led-0 {
+                       label = "red_led";
+                       color = <LED_COLOR_ID_RED>;
+                       default-state = "off";
+                       function = LED_FUNCTION_INDICATOR;
+                       linux,default-trigger = "none";
+                       max-brightness = <255>;
+                       pwms = <&pwm11 0 25000 0>;
+               };
+
+               green_led: led-1 {
+                       label = "green_led";
+                       color = <LED_COLOR_ID_GREEN>;
+                       default-state = "on";
+                       function = LED_FUNCTION_POWER;
+                       linux,default-trigger = "default-on";
+                       max-brightness = <255>;
+                       pwms = <&pwm14 0 25000 0>;
+               };
+
+               blue_led: led-2 {
+                       label = "blue_led";
+                       color = <LED_COLOR_ID_BLUE>;
+                       default-state = "off";
+                       function = LED_FUNCTION_INDICATOR;
+                       linux,default-trigger = "none";
+                       max-brightness = <255>;
+                       pwms = <&pwm15 0 25000 0>;
+               };
+       };
+
+       vcc3v3_pcie_wl: vcc3v3-pcie-wl-regulator {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pcie2_2_vcc3v3_en>;
+               regulator-name = "vcc3v3_pcie_wl";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               startup-delay-us = <5000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vcc5v0_host: vcc5v0-host-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc5v0_host";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       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>;
+       };
+
+       vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc_1v1_nldo_s3";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <1100000>;
+               regulator-max-microvolt = <1100000>;
+               vin-supply = <&vcc5v0_sys>;
+       };
+
+       vdd_3v3_sd: vdd-3v3-sd-regulator {
+               compatible = "regulator-fixed";
+               regulator-name = "vdd_3v3_sd";
+               gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               enable-active-high;
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&vcc_3v3_s3>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vdd_sd_en>;
+       };
+};
+
+&cpu_b0 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b1 {
+       cpu-supply = <&vdd_cpu_big0_s0>;
+};
+
+&cpu_b2 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_b3 {
+       cpu-supply = <&vdd_cpu_big1_s0>;
+};
+
+&cpu_l0 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l1 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l2 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&cpu_l3 {
+       cpu-supply = <&vdd_cpu_lit_s0>;
+};
+
+&combphy0_ps {
+       status = "okay";
+};
+
+&combphy2_psu {
+       status = "okay";
+};
+
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
+&i2c0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2c0m2_xfer>;
+       status = "okay";
+
+       vdd_cpu_big0_s0: regulator@42 {
+               compatible = "rockchip,rk8602";
+               reg = <0x42>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big0_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+
+       vdd_cpu_big1_s0: regulator@43 {
+               compatible = "rockchip,rk8603", "rockchip,rk8602";
+               reg = <0x43>;
+               fcs,suspend-voltage-selector = <1>;
+               regulator-name = "vdd_cpu_big1_s0";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <550000>;
+               regulator-max-microvolt = <1050000>;
+               regulator-ramp-delay = <2300>;
+               vin-supply = <&vcc5v0_sys>;
+
+               regulator-state-mem {
+                       regulator-off-in-suspend;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       hym8563: rtc@51 {
+               compatible = "haoyu,hym8563";
+               reg = <0x51>;
+               #clock-cells = <0>;
+               clock-output-names = "hym8563";
+               wakeup-source;
+       };
+};
+
+&pinctrl {
+       vdd_sd {
+               vdd_sd_en: vdd-sd-en {
+                       rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+       };
+
+       pcie2 {
+               pcie2_2_rst: pcie2-2-rst {
+                       rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               pcie2_2_vcc3v3_en: pcie2-2-vcc-en {
+                       rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
+       ir-receiver {
+               ir_receiver_pin: ir-receiver-pin {
+                       rockchip,pins = <1  RK_PA7  RK_FUNC_GPIO  &pcfg_pull_none>;
+               };
+       };
+
+       wireless-bluetooth {
+               bt_reset_pin: bt-reset-pin {
+                       rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+
+               bt_wake_pin: bt-wake-pin {
+                       rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+               };
+
+               bt_wake_host_irq: bt-wake-host-irq {
+                       rockchip,pins = <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
+               };
+       };
+};
+
+&pcie2x1l2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       vpcie3v3-supply = <&vcc3v3_pcie_wl>;
+       status = "okay";
+};
+
+&pwm11 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm11m1_pins>;
+       status = "okay";
+};
+
+&pwm14 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm14m1_pins>;
+       status = "okay";
+};
+
+&pwm15 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwm15m1_pins>;
+       status = "okay";
+};
+
+&saradc {
+       vref-supply = <&avcc_1v8_s0>;
+       status = "okay";
 };
 
 &sdhci {
        status = "okay";
 };
 
+&sdmmc {
+       bus-width = <4>;
+       cap-sd-highspeed;
+       disable-wp;
+       no-mmc;
+       no-sdio;
+       sd-uhs-sdr104;
+       vmmc-supply = <&vdd_3v3_sd>;
+       vqmmc-supply = <&vccio_sd_s0>;
+       status = "okay";
+};
+
+&sfc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&fspim2_pins>;
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0x0>;
+               spi-max-frequency = <100000000>;
+               spi-rx-bus-width = <4>;
+               spi-tx-bus-width = <1>;
+       };
+};
+
+&spi2 {
+       assigned-clocks = <&cru CLK_SPI2>;
+       assigned-clock-rates = <200000000>;
+       num-cs = <1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
+       status = "okay";
+
+       pmic@0 {
+               compatible = "rockchip,rk806";
+               reg = <0x0>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
+                           <&rk806_dvs2_null>, <&rk806_dvs3_null>;
+               spi-max-frequency = <1000000>;
+               system-power-controller;
+
+               vcc1-supply = <&vcc5v0_sys>;
+               vcc2-supply = <&vcc5v0_sys>;
+               vcc3-supply = <&vcc5v0_sys>;
+               vcc4-supply = <&vcc5v0_sys>;
+               vcc5-supply = <&vcc5v0_sys>;
+               vcc6-supply = <&vcc5v0_sys>;
+               vcc7-supply = <&vcc5v0_sys>;
+               vcc8-supply = <&vcc5v0_sys>;
+               vcc9-supply = <&vcc5v0_sys>;
+               vcc10-supply = <&vcc5v0_sys>;
+               vcc11-supply = <&vcc_2v0_pldo_s3>;
+               vcc12-supply = <&vcc5v0_sys>;
+               vcc13-supply = <&vcc_1v1_nldo_s3>;
+               vcc14-supply = <&vcc_1v1_nldo_s3>;
+               vcca-supply = <&vcc5v0_sys>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+
+               rk806_dvs1_null: dvs1-null-pins {
+                       pins = "gpio_pwrctrl1";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs2_null: dvs2-null-pins {
+                       pins = "gpio_pwrctrl2";
+                       function = "pin_fun0";
+               };
+
+               rk806_dvs3_null: dvs3-null-pins {
+                       pins = "gpio_pwrctrl3";
+                       function = "pin_fun0";
+               };
+
+               regulators {
+                       vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
+                               regulator-boot-on;
+                               regulator-enable-ramp-delay = <400>;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-name = "vdd_gpu_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-name = "vdd_cpu_lit_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_log_s0: dcdc-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_log_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <550000>;
+                               regulator-max-microvolt = <950000>;
+                               regulator-name = "vdd_vdenc_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_ddr_s0: dcdc-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <675000>;
+                               regulator-max-microvolt = <900000>;
+                               regulator-name = "vdd_ddr_s0";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       vdd2_ddr_s3: dcdc-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vdd2_ddr_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                               };
+                       };
+
+                       vcc_2v0_pldo_s3: dcdc-reg7 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <2000000>;
+                               regulator-max-microvolt = <2000000>;
+                               regulator-name = "vdd_2v0_pldo_s3";
+                               regulator-ramp-delay = <12500>;
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <2000000>;
+                               };
+                       };
+
+                       vcc_3v3_s3: dcdc-reg8 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-name = "vcc_3v3_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <3300000>;
+                               };
+                       };
+
+                       vddq_ddr_s0: dcdc-reg9 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-name = "vddq_ddr_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s3: dcdc-reg10 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avcc_1v8_s0: pldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "avcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_1v8_s0: pldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "vcc_1v8_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       avdd_1v2_s0: pldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-name = "avdd_1v2_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vcc_3v3_s0: pldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <3300000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vcc_3v3_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vccio_sd_s0: pldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <3300000>;
+                               regulator-ramp-delay = <12500>;
+                               regulator-name = "vccio_sd_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       pldo6_s3: pldo-reg6 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-name = "pldo6_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <1800000>;
+                               };
+                       };
+
+                       vdd_0v75_s3: nldo-reg1 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s3";
+
+                               regulator-state-mem {
+                                       regulator-on-in-suspend;
+                                       regulator-suspend-microvolt = <750000>;
+                               };
+                       };
+
+                       vdd_ddr_pll_s0: nldo-reg2 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_ddr_pll_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                                       regulator-suspend-microvolt = <850000>;
+                               };
+                       };
+
+                       avdd_0v75_s0: nldo-reg3 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "avdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v85_s0: nldo-reg4 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <850000>;
+                               regulator-name = "vdd_0v85_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+
+                       vdd_0v75_s0: nldo-reg5 {
+                               regulator-always-on;
+                               regulator-boot-on;
+                               regulator-min-microvolt = <750000>;
+                               regulator-max-microvolt = <750000>;
+                               regulator-name = "vdd_0v75_s0";
+
+                               regulator-state-mem {
+                                       regulator-off-in-suspend;
+                               };
+                       };
+               };
+       };
+};
+
+&tsadc {
+       status = "okay";
+};
+
 &uart2 {
        pinctrl-0 = <&uart2m0_xfer>;
        status = "okay";
 };
+
+&uart9 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&uart9m2_xfer &uart9m2_ctsn>;
+       status = "okay";
+};
+
+&u2phy2 {
+       status = "okay";
+};
+
+&u2phy2_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&u2phy3 {
+       status = "okay";
+};
+
+&u2phy3_host {
+       phy-supply = <&vcc5v0_host>;
+       status = "okay";
+};
+
+&usb_host0_ehci {
+       status = "okay";
+};
+
+&usb_host0_ohci {
+       status = "okay";
+};
+
+&usb_host1_ehci {
+       status = "okay";
+};
+
+&usb_host1_ohci {
+       status = "okay";
+};
+
+&usb_host2_xhci {
+       status = "okay";
+};
index 25de436..feea6b2 100644 (file)
@@ -6,6 +6,7 @@
 #include <dt-bindings/leds/common.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/usb/pd.h>
 #include "rk3588s.dtsi"
 
 / {
        status = "okay";
 };
 
+&gpu {
+       mali-supply = <&vdd_gpu_s0>;
+       status = "okay";
+};
+
 &i2c0 {
        pinctrl-names = "default";
        pinctrl-0 = <&i2c0m2_xfer>;
        pinctrl-0 = <&i2c6m3_xfer>;
        status = "okay";
 
+       usbc0: usb-typec@22 {
+               compatible = "fcs,fusb302";
+               reg = <0x22>;
+               interrupt-parent = <&gpio0>;
+               interrupts = <RK_PD3 IRQ_TYPE_LEVEL_LOW>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usbc0_int>;
+               vbus-supply = <&vbus_typec>;
+               status = "okay";
+
+               usb_con: connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       data-role = "dual";
+                       op-sink-microwatt = <1000000>;
+                       power-role = "dual";
+                       sink-pdos =
+                               <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
+                       source-pdos =
+                               <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
+                       try-power-role = "source";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       usbc0_hs: endpoint {
+                                               remote-endpoint = <&usb_host0_xhci_drd_sw>;
+                                       };
+                               };
+
+                               port@1 {
+                                       reg = <1>;
+                                       usbc0_ss: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_ss>;
+                                       };
+                               };
+
+                               port@2 {
+                                       reg = <2>;
+                                       usbc0_sbu: endpoint {
+                                               remote-endpoint = <&usbdp_phy0_typec_sbu>;
+                                       };
+                               };
+                       };
+               };
+       };
+
        hym8563: rtc@51 {
                compatible = "haoyu,hym8563";
                reg = <0x51>;
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        status = "okay";
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy0 {
+       mode-switch;
+       orientation-switch;
+       sbu1-dc-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
+       sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
+       status = "okay";
+
+       port {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               usbdp_phy0_typec_ss: endpoint@0 {
+                       reg = <0>;
+                       remote-endpoint = <&usbc0_ss>;
+               };
+
+               usbdp_phy0_typec_sbu: endpoint@1 {
+                       reg = <1>;
+                       remote-endpoint = <&usbc0_sbu>;
+               };
+       };
+};
+
 &usb_host0_ehci {
        status = "okay";
 };
        status = "okay";
 };
 
+&usb_host0_xhci {
+       dr_mode = "otg";
+       usb-role-switch;
+       status = "okay";
+
+       port {
+               usb_host0_xhci_drd_sw: endpoint {
+                       remote-endpoint = <&usbc0_hs>;
+               };
+       };
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
index 00afb90..8e2a076 100644 (file)
@@ -8,7 +8,7 @@
 #include "rk3588s.dtsi"
 
 / {
-       model = "Radxa ROCK 5 Model A";
+       model = "Radxa ROCK 5A";
        compatible = "radxa,rock-5a", "rockchip,rk3588s";
 
        aliases {
                #gpio-cells = <2>;
 
                rk806_dvs1_null: dvs1-null-pins {
-                       pins = "gpio_pwrctrl2";
+                       pins = "gpio_pwrctrl1";
                        function = "pin_fun0";
                };
 
        };
 };
 
+&u2phy0 {
+       status = "okay";
+};
+
+&u2phy0_otg {
+       status = "okay";
+};
+
 &u2phy2 {
        status = "okay";
 };
        status = "okay";
 };
 
+&usbdp_phy0 {
+       status = "okay";
+       rockchip,dp-lane-mux = <2 3>;
+};
+
 &usb_host0_ehci {
        status = "okay";
        pinctrl-names = "default";
        status = "okay";
 };
 
+&usb_host0_xhci {
+       dr_mode = "host";
+       status = "okay";
+};
+
 &usb_host1_ehci {
        status = "okay";
 };
index 87b83c8..6ac5ac8 100644 (file)
                };
        };
 
+       display_subsystem: display-subsystem {
+               compatible = "rockchip,display-subsystem";
+               ports = <&vop_out>;
+       };
+
        firmware {
                optee: optee {
                        compatible = "linaro,optee-tz";
                #clock-cells = <0>;
        };
 
-       display_subsystem: display-subsystem {
-               compatible = "rockchip,display-subsystem";
-               ports = <&vop_out>;
-       };
-
        timer {
                compatible = "arm,armv8-timer";
                interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH 0>,
                };
        };
 
+       gpu: gpu@fb000000 {
+               compatible = "rockchip,rk3588-mali", "arm,mali-valhall-csf";
+               reg = <0x0 0xfb000000 0x0 0x200000>;
+               #cooling-cells = <2>;
+               assigned-clocks = <&scmi_clk SCMI_CLK_GPU>;
+               assigned-clock-rates = <200000000>;
+               clocks = <&cru CLK_GPU>, <&cru CLK_GPU_COREGROUP>,
+                        <&cru CLK_GPU_STACKS>;
+               clock-names = "core", "coregroup", "stacks";
+               dynamic-power-coefficient = <2982>;
+               interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "job", "mmu", "gpu";
+               operating-points-v2 = <&gpu_opp_table>;
+               power-domains = <&power RK3588_PD_GPU>;
+               status = "disabled";
+
+               gpu_opp_table: opp-table {
+                       compatible = "operating-points-v2";
+
+                       opp-300000000 {
+                               opp-hz = /bits/ 64 <300000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-400000000 {
+                               opp-hz = /bits/ 64 <400000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-500000000 {
+                               opp-hz = /bits/ 64 <500000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-600000000 {
+                               opp-hz = /bits/ 64 <600000000>;
+                               opp-microvolt = <675000 675000 850000>;
+                       };
+                       opp-700000000 {
+                               opp-hz = /bits/ 64 <700000000>;
+                               opp-microvolt = <700000 700000 850000>;
+                       };
+                       opp-800000000 {
+                               opp-hz = /bits/ 64 <800000000>;
+                               opp-microvolt = <750000 750000 850000>;
+                       };
+                       opp-900000000 {
+                               opp-hz = /bits/ 64 <900000000>;
+                               opp-microvolt = <800000 800000 850000>;
+                       };
+                       opp-1000000000 {
+                               opp-hz = /bits/ 64 <1000000000>;
+                               opp-microvolt = <850000 850000 850000>;
+                       };
+               };
+       };
+
+       usb_host0_xhci: usb@fc000000 {
+               compatible = "rockchip,rk3588-dwc3", "snps,dwc3";
+               reg = <0x0 0xfc000000 0x0 0x400000>;
+               interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru REF_CLK_USB3OTG0>, <&cru SUSPEND_CLK_USB3OTG0>,
+                        <&cru ACLK_USB3OTG0>;
+               clock-names = "ref_clk", "suspend_clk", "bus_clk";
+               dr_mode = "otg";
+               phys = <&u2phy0_otg>, <&usbdp_phy0 PHY_TYPE_USB3>;
+               phy-names = "usb2-phy", "usb3-phy";
+               phy_type = "utmi_wide";
+               power-domains = <&power RK3588_PD_USB>;
+               resets = <&cru SRST_A_USB3OTG0>;
+               snps,dis_enblslpm_quirk;
+               snps,dis-u1-entry-quirk;
+               snps,dis-u2-entry-quirk;
+               snps,dis-u2-freeclk-exists-quirk;
+               snps,dis-del-phy-power-chg-quirk;
+               snps,dis-tx-ipgap-linecheck-quirk;
+               status = "disabled";
+       };
+
        usb_host0_ehci: usb@fc800000 {
                compatible = "rockchip,rk3588-ehci", "generic-ehci";
                reg = <0x0 0xfc800000 0x0 0x40000>;
                status = "disabled";
        };
 
+       mmu600_pcie: iommu@fc900000 {
+               compatible = "arm,smmu-v3";
+               reg = <0x0 0xfc900000 0x0 0x200000>;
+               interrupts = <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+               #iommu-cells = <1>;
+               status = "disabled";
+       };
+
+       mmu600_php: iommu@fcb00000 {
+               compatible = "arm,smmu-v3";
+               reg = <0x0 0xfcb00000 0x0 0x200000>;
+               interrupts = <GIC_SPI 381 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 383 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 379 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
+               #iommu-cells = <1>;
+               status = "disabled";
+       };
+
        pmu1grf: syscon@fd58a000 {
                compatible = "rockchip,rk3588-pmugrf", "syscon", "simple-mfd";
                reg = <0x0 0xfd58a000 0x0 0x10000>;
                reg = <0x0 0xfd5a4000 0x0 0x2000>;
        };
 
+       vo0_grf: syscon@fd5a6000 {
+               compatible = "rockchip,rk3588-vo-grf", "syscon";
+               reg = <0x0 0xfd5a6000 0x0 0x2000>;
+               clocks = <&cru PCLK_VO0GRF>;
+       };
+
        vo1_grf: syscon@fd5a8000 {
                compatible = "rockchip,rk3588-vo-grf", "syscon";
                reg = <0x0 0xfd5a8000 0x0 0x100>;
                clocks = <&cru PCLK_VO1GRF>;
        };
 
+       usb_grf: syscon@fd5ac000 {
+               compatible = "rockchip,rk3588-usb-grf", "syscon";
+               reg = <0x0 0xfd5ac000 0x0 0x4000>;
+       };
+
        php_grf: syscon@fd5b0000 {
                compatible = "rockchip,rk3588-php-grf", "syscon";
                reg = <0x0 0xfd5b0000 0x0 0x1000>;
                reg = <0x0 0xfd5c4000 0x0 0x100>;
        };
 
+       usbdpphy0_grf: syscon@fd5c8000 {
+               compatible = "rockchip,rk3588-usbdpphy-grf", "syscon";
+               reg = <0x0 0xfd5c8000 0x0 0x4000>;
+       };
+
+       usb2phy0_grf: syscon@fd5d0000 {
+               compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
+               reg = <0x0 0xfd5d0000 0x0 0x4000>;
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               u2phy0: usb2phy@0 {
+                       compatible = "rockchip,rk3588-usb2phy";
+                       reg = <0x0 0x10>;
+                       #clock-cells = <0>;
+                       clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
+                       clock-names = "phyclk";
+                       clock-output-names = "usb480m_phy0";
+                       interrupts = <GIC_SPI 393 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U3_0>, <&cru SRST_P_USB2PHY_U3_0_GRF0>;
+                       reset-names = "phy", "apb";
+                       status = "disabled";
+
+                       u2phy0_otg: otg-port {
+                               #phy-cells = <0>;
+                               status = "disabled";
+                       };
+               };
+       };
+
        usb2phy2_grf: syscon@fd5d8000 {
                compatible = "rockchip,rk3588-usb2phy-grf", "syscon", "simple-mfd";
                reg = <0x0 0xfd5d8000 0x0 0x4000>;
                #address-cells = <1>;
                #size-cells = <1>;
 
-               u2phy2: usb2-phy@8000 {
+               u2phy2: usb2phy@8000 {
                        compatible = "rockchip,rk3588-usb2phy";
                        reg = <0x8000 0x10>;
-                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
-                       reset-names = "phy", "apb";
+                       #clock-cells = <0>;
                        clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
                        clock-names = "phyclk";
                        clock-output-names = "usb480m_phy2";
-                       #clock-cells = <0>;
+                       interrupts = <GIC_SPI 391 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U2_0>, <&cru SRST_P_USB2PHY_U2_0_GRF0>;
+                       reset-names = "phy", "apb";
                        status = "disabled";
 
                        u2phy2_host: host-port {
                #address-cells = <1>;
                #size-cells = <1>;
 
-               u2phy3: usb2-phy@c000 {
+               u2phy3: usb2phy@c000 {
                        compatible = "rockchip,rk3588-usb2phy";
                        reg = <0xc000 0x10>;
-                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
-                       resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
-                       reset-names = "phy", "apb";
+                       #clock-cells = <0>;
                        clocks = <&cru CLK_USB2PHY_HDPTXRXPHY_REF>;
                        clock-names = "phyclk";
                        clock-output-names = "usb480m_phy3";
-                       #clock-cells = <0>;
+                       interrupts = <GIC_SPI 392 IRQ_TYPE_LEVEL_HIGH 0>;
+                       resets = <&cru SRST_OTGPHY_U2_1>, <&cru SRST_P_USB2PHY_U2_1_GRF0>;
+                       reset-names = "phy", "apb";
                        status = "disabled";
 
                        u2phy3_host: host-port {
                status = "disabled";
        };
 
-       vop: vop@fdd90000 {
-               compatible = "rockchip,rk3588-vop";
-               reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
-               reg-names = "vop", "gamma-lut";
-               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP>,
-                        <&cru HCLK_VOP>,
-                        <&cru DCLK_VOP0>,
-                        <&cru DCLK_VOP1>,
-                        <&cru DCLK_VOP2>,
-                        <&cru DCLK_VOP3>,
-                        <&cru PCLK_VOP_ROOT>;
-               clock-names = "aclk",
-                             "hclk",
-                             "dclk_vp0",
-                             "dclk_vp1",
-                             "dclk_vp2",
-                             "dclk_vp3",
-                             "pclk_vop";
-               iommus = <&vop_mmu>;
-               power-domains = <&power RK3588_PD_VOP>;
-               rockchip,grf = <&sys_grf>;
-               rockchip,vop-grf = <&vop_grf>;
-               rockchip,vo1-grf = <&vo1_grf>;
-               rockchip,pmu = <&pmu>;
-               status = "disabled";
-
-               vop_out: ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-
-                       vp0: port@0 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <0>;
-                       };
-
-                       vp1: port@1 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <1>;
-                       };
-
-                       vp2: port@2 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <2>;
-                       };
-
-                       vp3: port@3 {
-                               #address-cells = <1>;
-                               #size-cells = <0>;
-                               reg = <3>;
-                       };
-               };
-       };
-
-       vop_mmu: iommu@fdd97e00 {
-               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
-               reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
-               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
-               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
-               clock-names = "aclk", "iface";
-               #iommu-cells = <0>;
-               power-domains = <&power RK3588_PD_VOP>;
-               status = "disabled";
-       };
-
        uart0: serial@fd890000 {
                compatible = "rockchip,rk3588-uart", "snps,dw-apb-uart";
                reg = <0x0 0xfd890000 0x0 0x100>;
                };
        };
 
+       av1d: video-codec@fdc70000 {
+               compatible = "rockchip,rk3588-av1-vpu";
+               reg = <0x0 0xfdc70000 0x0 0x800>;
+               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
+               interrupt-names = "vdpu";
+               assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
+               assigned-clock-rates = <400000000>, <400000000>;
+               clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
+               clock-names = "aclk", "hclk";
+               power-domains = <&power RK3588_PD_AV1>;
+               resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
+       };
+
+       vop: vop@fdd90000 {
+               compatible = "rockchip,rk3588-vop";
+               reg = <0x0 0xfdd90000 0x0 0x4200>, <0x0 0xfdd95000 0x0 0x1000>;
+               reg-names = "vop", "gamma-lut";
+               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP>,
+                        <&cru HCLK_VOP>,
+                        <&cru DCLK_VOP0>,
+                        <&cru DCLK_VOP1>,
+                        <&cru DCLK_VOP2>,
+                        <&cru DCLK_VOP3>,
+                        <&cru PCLK_VOP_ROOT>;
+               clock-names = "aclk",
+                             "hclk",
+                             "dclk_vp0",
+                             "dclk_vp1",
+                             "dclk_vp2",
+                             "dclk_vp3",
+                             "pclk_vop";
+               iommus = <&vop_mmu>;
+               power-domains = <&power RK3588_PD_VOP>;
+               rockchip,grf = <&sys_grf>;
+               rockchip,vop-grf = <&vop_grf>;
+               rockchip,vo1-grf = <&vo1_grf>;
+               rockchip,pmu = <&pmu>;
+               status = "disabled";
+
+               vop_out: ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       vp0: port@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <0>;
+                       };
+
+                       vp1: port@1 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <1>;
+                       };
+
+                       vp2: port@2 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <2>;
+                       };
+
+                       vp3: port@3 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               reg = <3>;
+                       };
+               };
+       };
+
+       vop_mmu: iommu@fdd97e00 {
+               compatible = "rockchip,rk3588-iommu", "rockchip,rk3568-iommu";
+               reg = <0x0 0xfdd97e00 0x0 0x100>, <0x0 0xfdd97f00 0x0 0x100>;
+               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH 0>;
+               clocks = <&cru ACLK_VOP>, <&cru HCLK_VOP>;
+               clock-names = "aclk", "iface";
+               #iommu-cells = <0>;
+               power-domains = <&power RK3588_PD_VOP>;
+               status = "disabled";
+       };
+
        i2s4_8ch: i2s@fddc0000 {
                compatible = "rockchip,rk3588-i2s-tdm";
                reg = <0x0 0xfddc0000 0x0 0x1000>;
                reg = <0x0 0xfdf82200 0x0 0x20>;
        };
 
+       dfi: dfi@fe060000 {
+               reg = <0x00 0xfe060000 0x00 0x10000>;
+               compatible = "rockchip,rk3588-dfi";
+               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
+                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
+               rockchip,pmu = <&pmu1grf>;
+       };
+
        pcie2x1l1: pcie@fe180000 {
                compatible = "rockchip,rk3588-pcie", "rockchip,rk3568-pcie";
                bus-range = <0x30 0x3f>;
                };
        };
 
-       dfi: dfi@fe060000 {
-               reg = <0x00 0xfe060000 0x00 0x10000>;
-               compatible = "rockchip,rk3588-dfi";
-               interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
-                            <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
-               rockchip,pmu = <&pmu1grf>;
-       };
-
        gmac1: ethernet@fe1c0000 {
                compatible = "rockchip,rk3588-gmac", "snps,dwmac-4.20a";
                reg = <0x0 0xfe1c0000 0x0 0x10000>;
                status = "disabled";
        };
 
+       usbdp_phy0: phy@fed80000 {
+               compatible = "rockchip,rk3588-usbdp-phy";
+               reg = <0x0 0xfed80000 0x0 0x10000>;
+               #phy-cells = <1>;
+               clocks = <&cru CLK_USBDPPHY_MIPIDCPPHY_REF>,
+                        <&cru CLK_USBDP_PHY0_IMMORTAL>,
+                        <&cru PCLK_USBDPPHY0>,
+                        <&u2phy0>;
+               clock-names = "refclk", "immortal", "pclk", "utmi";
+               resets = <&cru SRST_USBDP_COMBO_PHY0_INIT>,
+                        <&cru SRST_USBDP_COMBO_PHY0_CMN>,
+                        <&cru SRST_USBDP_COMBO_PHY0_LANE>,
+                        <&cru SRST_USBDP_COMBO_PHY0_PCS>,
+                        <&cru SRST_P_USBDPPHY0>;
+               reset-names = "init", "cmn", "lane", "pcs_apb", "pma_apb";
+               rockchip,u2phy-grf = <&usb2phy0_grf>;
+               rockchip,usb-grf = <&usb_grf>;
+               rockchip,usbdpphy-grf = <&usbdpphy0_grf>;
+               rockchip,vo-grf = <&vo0_grf>;
+               status = "disabled";
+       };
+
        combphy0_ps: phy@fee00000 {
                compatible = "rockchip,rk3588-naneng-combphy";
                reg = <0x0 0xfee00000 0x0 0x100>;
                        #interrupt-cells = <2>;
                };
        };
-
-       av1d: video-codec@fdc70000 {
-               compatible = "rockchip,rk3588-av1-vpu";
-               reg = <0x0 0xfdc70000 0x0 0x800>;
-               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH 0>;
-               interrupt-names = "vdpu";
-               assigned-clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
-               assigned-clock-rates = <400000000>, <400000000>;
-               clocks = <&cru ACLK_AV1>, <&cru PCLK_AV1>;
-               clock-names = "aclk", "hclk";
-               power-domains = <&power RK3588_PD_AV1>;
-               resets = <&cru SRST_A_AV1>, <&cru SRST_P_AV1>, <&cru SRST_A_AV1_BIU>, <&cru SRST_P_AV1_BIU>;
-       };
 };
 
 #include "rk3588s-pinctrl.dtsi"
index da44a15..a251c43 100644 (file)
 &i2c0 {
        status = "okay";
 
-       tas5707a@1d {
+       audio-codec@1d {
                compatible = "ti,tas5711";
                reg = <0x1d>;
                reset-gpios = <&gpio UNIPHIER_GPIO_PORT(23, 4) GPIO_ACTIVE_LOW>;
                PVDD_C-supply = <&amp_vcc_reg>;
                PVDD_D-supply = <&amp_vcc_reg>;
 
-               port@0 {
+               port {
                        tas_speaker: endpoint {
                                dai-format = "i2s";
                                remote-endpoint = <&i2s_hpcmout1>;
index a01579c..79f6db2 100644 (file)
 &i2c0 {
        status = "okay";
 
-       tas5707@1b {
+       audio-codec@1b {
                compatible = "ti,tas5711";
                reg = <0x1b>;
                reset-gpios = <&gpio UNIPHIER_GPIO_PORT(0, 0) GPIO_ACTIVE_LOW>;
                PVDD_C-supply = <&amp_vcc_reg>;
                PVDD_D-supply = <&amp_vcc_reg>;
 
-               port@0 {
+               port {
                        tas_speaker: endpoint {
                                dai-format = "i2s";
                                remote-endpoint = <&i2s_hpcmout1>;
index e27eb3e..31952d3 100644 (file)
                };
        };
 
-       idle-states{
+       idle-states {
                entry-method = "psci";
 
                CORE_PD: core_pd {
                };
        };
 
-       gic: interrupt-controller@12001000 {
-               compatible = "arm,gic-400";
-               reg = <0 0x12001000 0 0x1000>,
-                     <0 0x12002000 0 0x2000>,
-                     <0 0x12004000 0 0x2000>,
-                     <0 0x12006000 0 0x2000>;
-               #interrupt-cells = <3>;
-               interrupt-controller;
-               interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8)
-                                       | IRQ_TYPE_LEVEL_HIGH)>;
-       };
-
        psci {
                compatible = "arm,psci-0.2";
                method = "smc";
        };
 
        pmu {
-               compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
        };
 
        soc {
+               gic: interrupt-controller@12001000 {
+                       compatible = "arm,gic-400";
+                       reg = <0 0x12001000 0 0x1000>,
+                             <0 0x12002000 0 0x2000>,
+                             <0 0x12004000 0 0x2000>,
+                             <0 0x12006000 0 0x2000>;
+                       #interrupt-cells = <3>;
+                       interrupt-controller;
+                       interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8)
+                                               | IRQ_TYPE_LEVEL_HIGH)>;
+               };
+
                pmu_gate: pmu-gate {
                        compatible = "sprd,sc9860-pmu-gate";
                        sprd,syscon = <&pmu_regs>; /* 0x402b0000 */
                        #clock-cells = <1>;
                };
 
-               aon_prediv: aon-prediv {
+               aon_prediv: aon-prediv@402d0000 {
                        compatible = "sprd,sc9860-aon-prediv";
                        reg = <0 0x402d0000 0 0x400>;
                        clocks = <&ext_26m>, <&pll 0>,
                                };
                        };
                };
-
-               gpio-keys {
-                       compatible = "gpio-keys";
-
-                       key-volumedown {
-                               label = "Volume Down Key";
-                               linux,code = <KEY_VOLUMEDOWN>;
-                               gpios = <&eic_debounce 2 GPIO_ACTIVE_LOW>;
-                               debounce-interval = <2>;
-                               wakeup-source;
-                       };
-
-                       key-volumeup {
-                               label = "Volume Up Key";
-                               linux,code = <KEY_VOLUMEUP>;
-                               gpios = <&pmic_eic 10 GPIO_ACTIVE_HIGH>;
-                               debounce-interval = <2>;
-                               wakeup-source;
-                       };
-
-                       key-power {
-                               label = "Power Key";
-                               linux,code = <KEY_POWER>;
-                               gpios = <&pmic_eic 1 GPIO_ACTIVE_HIGH>;
-                               debounce-interval = <2>;
-                               wakeup-source;
-                       };
-               };
        };
 };
index 22d81ac..53e5b77 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a55-pmu";
                interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
index 206a4af..9b4ee0b 100644 (file)
@@ -24,7 +24,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x20e00000 0x4000>;
 
-                       apahb_gate: apahb-gate {
+                       apahb_gate: apahb-gate@0 {
                                compatible = "sprd,sc9863a-apahb-gate";
                                reg = <0x0 0x1020>;
                                #clock-cells = <1>;
@@ -39,7 +39,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x402b0000 0x4000>;
 
-                       pmu_gate: pmu-gate {
+                       pmu_gate: pmu-gate@0 {
                                compatible = "sprd,sc9863a-pmu-gate";
                                reg = <0 0x1200>;
                                clocks = <&ext_26m>;
@@ -56,7 +56,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x402e0000 0x4000>;
 
-                       aonapb_gate: aonapb-gate {
+                       aonapb_gate: aonapb-gate@0 {
                                compatible = "sprd,sc9863a-aonapb-gate";
                                reg = <0 0x1100>;
                                #clock-cells = <1>;
@@ -71,7 +71,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x40353000 0x3000>;
 
-                       pll: pll {
+                       pll: pll@0 {
                                compatible = "sprd,sc9863a-pll";
                                reg = <0 0x100>;
                                clocks = <&ext_26m>;
@@ -88,7 +88,7 @@
                        #size-cells = <1>;
                        ranges = <0 0 0x40359000 0x3000>;
 
-                       mpll: mpll {
+                       mpll: mpll@0 {
                                compatible = "sprd,sc9863a-mpll";
                                reg = <0 0x100>;
                                #clock-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0 0x4035c000 0x3000>;
 
-                       rpll: rpll {
+                       rpll: rpll@0 {
                                compatible = "sprd,sc9863a-rpll";
                                reg = <0 0x100>;
                                clocks = <&ext_26m>;
                        #size-cells = <1>;
                        ranges = <0 0 0x40363000 0x3000>;
 
-                       dpll: dpll {
+                       dpll: dpll@0 {
                                compatible = "sprd,sc9863a-dpll";
                                reg = <0 0x100>;
                                #clock-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0 0x60800000 0x3000>;
 
-                       mm_gate: mm-gate {
+                       mm_gate: mm-gate@0 {
                                compatible = "sprd,sc9863a-mm-gate";
                                reg = <0 0x1100>;
                                #clock-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0 0 0x71300000 0x4000>;
 
-                       apapb_gate: apapb-gate {
+                       apapb_gate: apapb-gate@0 {
                                compatible = "sprd,sc9863a-apapb-gate";
                                reg = <0 0x1000>;
                                clocks = <&ext_26m>;
index 6b95fd9..1ce3cbb 100644 (file)
@@ -24,7 +24,7 @@
                spi0 = &adi_bus;
        };
 
-       memory{
+       memory@80000000 {
                device_type = "memory";
                reg = <0x0 0x80000000 0 0x60000000>,
                      <0x1 0x80000000 0 0x60000000>;
                stdout-path = "serial1:115200n8";
        };
 
+       gpio-keys {
+               compatible = "gpio-keys";
+
+               key-volumedown {
+                       label = "Volume Down Key";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       gpios = <&eic_debounce 2 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <2>;
+                       wakeup-source;
+               };
+
+               key-volumeup {
+                       label = "Volume Up Key";
+                       linux,code = <KEY_VOLUMEUP>;
+                       gpios = <&pmic_eic 10 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <2>;
+                       wakeup-source;
+               };
+
+               key-power {
+                       label = "Power Key";
+                       linux,code = <KEY_POWER>;
+                       gpios = <&pmic_eic 1 GPIO_ACTIVE_HIGH>;
+                       debounce-interval = <2>;
+                       wakeup-source;
+               };
+       };
+
        reserved-memory {
                #address-cells = <2>;
                #size-cells = <2>;
index fece497..7068bfd 100644 (file)
@@ -64,7 +64,7 @@
                        reg = <0 0x70b00000 0 0x40000>;
                };
 
-               ap-apb {
+               ap-apb@70000000 {
                        compatible = "simple-bus";
                        #address-cells = <1>;
                        #size-cells = <1>;
index 66791a9..7a82896 100644 (file)
@@ -6,6 +6,23 @@
 #include <dt-bindings/pinctrl/stm32-pinfunc.h>
 
 &pinctrl {
+       i2c2_pins_a: i2c2-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 5, AF9)>, /* I2C2_SCL */
+                                <STM32_PINMUX('B', 4, AF9)>; /* I2C2_SDA */
+                       bias-disable;
+                       drive-open-drain;
+                       slew-rate = <0>;
+               };
+       };
+
+       i2c2_sleep_pins_a: i2c2-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('B', 5, ANALOG)>, /* I2C2_SCL */
+                                <STM32_PINMUX('B', 4, ANALOG)>; /* I2C2_SDA */
+               };
+       };
+
        sdmmc1_b4_pins_a: sdmmc1-b4-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('E', 4, AF10)>, /* SDMMC1_D0 */
                };
        };
 
+       spi3_pins_a: spi3-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('B', 7, AF1)>, /* SPI3_SCK */
+                                <STM32_PINMUX('B', 8, AF1)>; /* SPI3_MOSI */
+                       drive-push-pull;
+                       bias-disable;
+                       slew-rate = <1>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('B', 10, AF1)>; /* SPI3_MISO */
+                       bias-disable;
+               };
+       };
+
+       spi3_sleep_pins_a: spi3-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('B', 7, ANALOG)>, /* SPI3_SCK */
+                                <STM32_PINMUX('B', 8, ANALOG)>, /* SPI3_MOSI */
+                                <STM32_PINMUX('B', 10, ANALOG)>; /* SPI3_MISO */
+               };
+       };
+
        usart2_pins_a: usart2-0 {
                pins1 {
                        pinmux = <STM32_PINMUX('A', 4, AF6)>; /* USART2_TX */
                };
        };
 };
+
+&pinctrl_z {
+       i2c8_pins_a: i2c8-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('Z', 4, AF8)>, /* I2C8_SCL */
+                                <STM32_PINMUX('Z', 3, AF8)>; /* I2C8_SDA */
+                       bias-disable;
+                       drive-open-drain;
+                       slew-rate = <0>;
+               };
+       };
+
+       i2c8_sleep_pins_a: i2c8-sleep-0 {
+               pins {
+                       pinmux = <STM32_PINMUX('Z', 4, ANALOG)>, /* I2C8_SCL */
+                                <STM32_PINMUX('Z', 3, ANALOG)>; /* I2C8_SDA */
+               };
+       };
+};
+
+&pinctrl_z {
+       spi8_pins_a: spi8-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('Z', 2, AF3)>, /* SPI8_SCK */
+                                <STM32_PINMUX('Z', 0, AF3)>; /* SPI8_MOSI */
+                       drive-push-pull;
+                       bias-disable;
+                       slew-rate = <1>;
+               };
+               pins2 {
+                       pinmux = <STM32_PINMUX('Z', 1, AF3)>; /* SPI8_MISO */
+                       bias-disable;
+               };
+       };
+
+       spi8_sleep_pins_a: spi8-sleep-0 {
+               pins1 {
+                       pinmux = <STM32_PINMUX('Z', 2, ANALOG)>, /* SPI8_SCK */
+                                <STM32_PINMUX('Z', 0, ANALOG)>, /* SPI8_MOSI */
+                                <STM32_PINMUX('Z', 1, ANALOG)>; /* SPI8_MISO */
+               };
+       };
+};
index 5dd4f35..4b48e4e 100644 (file)
@@ -3,7 +3,9 @@
  * Copyright (C) STMicroelectronics 2023 - All Rights Reserved
  * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  */
+#include <dt-bindings/clock/st,stm32mp25-rcc.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
+#include <dt-bindings/reset/st,stm32mp25-rcc.h>
 
 / {
        #address-cells = <2>;
        };
 
        clocks {
-               ck_flexgen_08: ck-flexgen-08 {
+               clk_dsi_txbyte: txbyteclk {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <100000000>;
+                       clock-frequency = <0>;
                };
 
-               ck_flexgen_51: ck-flexgen-51 {
+               clk_rcbsec: clk-rcbsec {
                        #clock-cells = <0>;
                        compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
-               };
-
-               ck_icn_ls_mcu: ck-icn-ls-mcu {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
-               };
-
-               ck_icn_p_vdec: ck-icn-p-vdec {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
-               };
-
-               ck_icn_p_venc: ck-icn-p-venc {
-                       #clock-cells = <0>;
-                       compatible = "fixed-clock";
-                       clock-frequency = <200000000>;
+                       clock-frequency = <64000000>;
                };
        };
 
        timer {
                compatible = "arm,armv8-timer";
                interrupt-parent = <&intc>;
-               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)>;
+               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)>;
                always-on;
        };
 
                interrupt-parent = <&intc>;
                ranges = <0x0 0x0 0x0 0x80000000>;
 
-               rifsc: rifsc-bus@42080000 {
-                       compatible = "simple-bus";
+               rifsc: bus@42080000 {
+                       compatible = "st,stm32mp25-rifsc", "simple-bus";
                        reg = <0x42080000 0x1000>;
                        #address-cells = <1>;
                        #size-cells = <1>;
+                       #access-controller-cells = <1>;
                        ranges;
 
+                       spi2: spi@400b0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x400b0000 0x400>;
+                               interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI2>;
+                               resets = <&rcc SPI2_R>;
+                               access-controllers = <&rifsc 23>;
+                               status = "disabled";
+                       };
+
+                       spi3: spi@400c0000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x400c0000 0x400>;
+                               interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI3>;
+                               resets = <&rcc SPI3_R>;
+                               access-controllers = <&rifsc 24>;
+                               status = "disabled";
+                       };
+
                        usart2: serial@400e0000 {
                                compatible = "st,stm32h7-uart";
                                reg = <0x400e0000 0x400>;
                                interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_flexgen_08>;
+                               clocks = <&rcc CK_KER_USART2>;
+                               access-controllers = <&rifsc 32>;
+                               status = "disabled";
+                       };
+
+                       i2c1: i2c@40120000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40120000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C1>;
+                               resets = <&rcc I2C1_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 41>;
+                               status = "disabled";
+                       };
+
+                       i2c2: i2c@40130000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40130000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C2>;
+                               resets = <&rcc I2C2_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 42>;
+                               status = "disabled";
+                       };
+
+                       i2c3: i2c@40140000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40140000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C3>;
+                               resets = <&rcc I2C3_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 43>;
+                               status = "disabled";
+                       };
+
+                       i2c4: i2c@40150000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40150000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C4>;
+                               resets = <&rcc I2C4_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 44>;
+                               status = "disabled";
+                       };
+
+                       i2c5: i2c@40160000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40160000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C5>;
+                               resets = <&rcc I2C5_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 45>;
+                               status = "disabled";
+                       };
+
+                       i2c6: i2c@40170000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40170000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C6>;
+                               resets = <&rcc I2C6_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 46>;
+                               status = "disabled";
+                       };
+
+                       i2c7: i2c@40180000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x40180000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C7>;
+                               resets = <&rcc I2C7_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 47>;
+                               status = "disabled";
+                       };
+
+                       spi1: spi@40230000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40230000 0x400>;
+                               interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI1>;
+                               resets = <&rcc SPI1_R>;
+                               access-controllers = <&rifsc 22>;
+                               status = "disabled";
+                       };
+
+                       spi4: spi@40240000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40240000 0x400>;
+                               interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI4>;
+                               resets = <&rcc SPI4_R>;
+                               access-controllers = <&rifsc 25>;
+                               status = "disabled";
+                       };
+
+                       spi5: spi@40280000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40280000 0x400>;
+                               interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI5>;
+                               resets = <&rcc SPI5_R>;
+                               access-controllers = <&rifsc 26>;
+                               status = "disabled";
+                       };
+
+                       spi6: spi@40350000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40350000 0x400>;
+                               interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI6>;
+                               resets = <&rcc SPI6_R>;
+                               access-controllers = <&rifsc 27>;
+                               status = "disabled";
+                       };
+
+                       spi7: spi@40360000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x40360000 0x400>;
+                               interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI7>;
+                               resets = <&rcc SPI7_R>;
+                               access-controllers = <&rifsc 28>;
+                               status = "disabled";
+                       };
+
+                       spi8: spi@46020000 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "st,stm32mp25-spi";
+                               reg = <0x46020000 0x400>;
+                               interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_SPI8>;
+                               resets = <&rcc SPI8_R>;
+                               access-controllers = <&rifsc 29>;
+                               status = "disabled";
+                       };
+
+                       i2c8: i2c@46040000 {
+                               compatible = "st,stm32mp25-i2c";
+                               reg = <0x46040000 0x400>;
+                               interrupt-names = "event";
+                               interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
+                               clocks = <&rcc CK_KER_I2C8>;
+                               resets = <&rcc I2C8_R>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               access-controllers = <&rifsc 48>;
                                status = "disabled";
                        };
 
                                arm,primecell-periphid = <0x00353180>;
                                reg = <0x48220000 0x400>, <0x44230400 0x8>;
                                interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_flexgen_51>;
+                               clocks = <&rcc CK_KER_SDMMC1 >;
                                clock-names = "apb_pclk";
+                               resets = <&rcc SDMMC1_R>;
                                cap-sd-highspeed;
                                cap-mmc-highspeed;
                                max-frequency = <120000000>;
+                               access-controllers = <&rifsc 76>;
                                status = "disabled";
                        };
                };
                        };
                };
 
+               rcc: clock-controller@44200000 {
+                       compatible = "st,stm32mp25-rcc";
+                       reg = <0x44200000 0x10000>;
+                       #clock-cells = <1>;
+                       #reset-cells = <1>;
+                       clocks = <&scmi_clk CK_SCMI_HSE>,
+                               <&scmi_clk CK_SCMI_HSI>,
+                               <&scmi_clk CK_SCMI_MSI>,
+                               <&scmi_clk CK_SCMI_LSE>,
+                               <&scmi_clk CK_SCMI_LSI>,
+                               <&scmi_clk CK_SCMI_HSE_DIV2>,
+                               <&scmi_clk CK_SCMI_ICN_HS_MCU>,
+                               <&scmi_clk CK_SCMI_ICN_LS_MCU>,
+                               <&scmi_clk CK_SCMI_ICN_SDMMC>,
+                               <&scmi_clk CK_SCMI_ICN_DDR>,
+                               <&scmi_clk CK_SCMI_ICN_DISPLAY>,
+                               <&scmi_clk CK_SCMI_ICN_HSL>,
+                               <&scmi_clk CK_SCMI_ICN_NIC>,
+                               <&scmi_clk CK_SCMI_ICN_VID>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_07>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_08>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_09>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_10>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_11>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_12>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_13>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_14>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_15>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_16>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_17>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_18>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_19>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_20>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_21>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_22>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_23>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_24>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_25>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_26>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_27>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_28>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_29>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_30>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_31>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_32>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_33>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_34>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_35>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_36>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_37>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_38>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_39>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_40>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_41>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_42>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_43>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_44>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_45>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_46>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_47>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_48>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_49>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_50>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_51>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_52>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_53>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_54>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_55>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_56>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_57>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_58>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_59>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_60>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_61>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_62>,
+                               <&scmi_clk CK_SCMI_FLEXGEN_63>,
+                               <&scmi_clk CK_SCMI_ICN_APB1>,
+                               <&scmi_clk CK_SCMI_ICN_APB2>,
+                               <&scmi_clk CK_SCMI_ICN_APB3>,
+                               <&scmi_clk CK_SCMI_ICN_APB4>,
+                               <&scmi_clk CK_SCMI_ICN_APBDBG>,
+                               <&scmi_clk CK_SCMI_TIMG1>,
+                               <&scmi_clk CK_SCMI_TIMG2>,
+                               <&scmi_clk CK_SCMI_PLL3>,
+                               <&clk_dsi_txbyte>;
+               };
+
                syscfg: syscon@44230000 {
                        compatible = "st,stm32mp25-syscfg", "syscon";
                        reg = <0x44230000 0x10000>;
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x0 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOA>;
                                st,bank-name = "GPIOA";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x10000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOB>;
                                st,bank-name = "GPIOB";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x20000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOC>;
                                st,bank-name = "GPIOC";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x30000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOD>;
                                st,bank-name = "GPIOD";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x40000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOE>;
                                st,bank-name = "GPIOE";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x50000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOF>;
                                st,bank-name = "GPIOF";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x60000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOG>;
                                st,bank-name = "GPIOG";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x70000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOH>;
                                st,bank-name = "GPIOH";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x80000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOI>;
                                st,bank-name = "GPIOI";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0x90000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOJ>;
                                st,bank-name = "GPIOJ";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0xa0000 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOK>;
                                st,bank-name = "GPIOK";
                                status = "disabled";
                        };
                                interrupt-controller;
                                #interrupt-cells = <2>;
                                reg = <0 0x400>;
-                               clocks = <&ck_icn_ls_mcu>;
+                               clocks = <&scmi_clk CK_SCMI_GPIOZ>;
                                st,bank-name = "GPIOZ";
                                st,bank-ioport = <11>;
                                status = "disabled";
index af48e82..029f889 100644 (file)
                             <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
                interrupt-affinity = <&cpu0>, <&cpu1>;
        };
+
+       timer {
+               interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
+                            <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
+       };
 };
index 17f197c..f689b47 100644 (file)
@@ -5,22 +5,21 @@
  */
 #include "stm32mp253.dtsi"
 
-/ {
-       soc@0 {
-               rifsc: rifsc-bus@42080000 {
-                       vdec: vdec@480d0000 {
-                               compatible = "st,stm32mp25-vdec";
-                               reg = <0x480d0000 0x3c8>;
-                               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_icn_p_vdec>;
-                       };
+&rifsc {
+       vdec: vdec@480d0000 {
+               compatible = "st,stm32mp25-vdec";
+               reg = <0x480d0000 0x3c8>;
+               interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CK_BUS_VDEC>;
+               access-controllers = <&rifsc 89>;
 
-                       venc: venc@480e0000 {
-                               compatible = "st,stm32mp25-venc";
-                               reg = <0x480e0000 0x800>;
-                               interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
-                               clocks = <&ck_icn_ls_mcu>;
-                       };
-               };
        };
-};
+
+       venc: venc@480e0000 {
+               compatible = "st,stm32mp25-venc";
+               reg = <0x480e0000 0x800>;
+               interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
+               clocks = <&rcc CK_BUS_VENC>;
+               access-controllers = <&rifsc 90>;
+       };
+};
\ No newline at end of file
index b2d3afb..27b7360 100644 (file)
        status = "okay";
 };
 
+&i2c2 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c2_pins_a>;
+       pinctrl-1 = <&i2c2_sleep_pins_a>;
+       i2c-scl-rising-time-ns = <100>;
+       i2c-scl-falling-time-ns = <13>;
+       clock-frequency = <400000>;
+       status = "okay";
+};
+
+&i2c8 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&i2c8_pins_a>;
+       pinctrl-1 = <&i2c8_sleep_pins_a>;
+       i2c-scl-rising-time-ns = <57>;
+       i2c-scl-falling-time-ns = <7>;
+       clock-frequency = <400000>;
+       status = "disabled";
+};
+
 &sdmmc1 {
        pinctrl-names = "default", "opendrain", "sleep";
        pinctrl-0 = <&sdmmc1_b4_pins_a>;
        status = "okay";
 };
 
+&spi3 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&spi3_pins_a>;
+       pinctrl-1 = <&spi3_sleep_pins_a>;
+       status = "disabled";
+};
+
+&spi8 {
+       pinctrl-names = "default", "sleep";
+       pinctrl-0 = <&spi8_pins_a>;
+       pinctrl-1 = <&spi8_sleep_pins_a>;
+       status = "disabled";
+};
+
 &usart2 {
        pinctrl-names = "default", "idle", "sleep";
        pinctrl-0 = <&usart2_pins_a>;
index 53d616c..71e4bfc 100644 (file)
@@ -88,7 +88,7 @@
        };
 
        pmu {
-               compatible = "arm,cortex-a53-pmu", "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
index 047a83c..690b4ed 100644 (file)
        };
 
        arm-pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a72-pmu";
                interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
index 9a722c2..2c327cc 100644 (file)
@@ -48,6 +48,7 @@ dtb-$(CONFIG_ARCH_K3) += k3-am642-hummingboard-t.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am642-hummingboard-t-pcie.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am642-hummingboard-t-usb3.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am642-phyboard-electra-rdk.dtb
+dtb-$(CONFIG_ARCH_K3) += k3-am642-phyboard-electra-gpio-fan.dtbo
 dtb-$(CONFIG_ARCH_K3) += k3-am642-sk.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am642-tqma64xxl-mbax4xxl.dtb
 dtb-$(CONFIG_ARCH_K3) += k3-am64-tqma64xxl-mbax4xxl-sdcard.dtbo
@@ -131,6 +132,8 @@ k3-am62p5-sk-csi2-tevi-ov5640-dtbs := k3-am62p5-sk.dtb \
        k3-am62x-sk-csi2-tevi-ov5640.dtbo
 k3-am642-evm-icssg1-dualemac-dtbs := \
        k3-am642-evm.dtb k3-am642-evm-icssg1-dualemac.dtbo
+k3-am642-phyboard-electra-gpio-fan-dtbs := \
+       k3-am642-phyboard-electra-rdk.dtb k3-am642-phyboard-electra-gpio-fan.dtbo
 k3-am642-tqma64xxl-mbax4xxl-sdcard-dtbs := \
        k3-am642-tqma64xxl-mbax4xxl.dtb k3-am64-tqma64xxl-mbax4xxl-sdcard.dtbo
 k3-am642-tqma64xxl-mbax4xxl-wlan-dtbs := \
@@ -161,19 +164,21 @@ dtb- += k3-am625-beagleplay-csi2-ov5640.dtb \
        k3-am642-evm-icssg1-dualemac.dtb \
        k3-am642-tqma64xxl-mbax4xxl-sdcard.dtb \
        k3-am642-tqma64xxl-mbax4xxl-wlan.dtb \
-       k3-am68-sk-base-board-csi2-dual-imx219-dtbs \
-       k3-am69-sk-csi2-dual-imx219-dtbs \
+       k3-am68-sk-base-board-csi2-dual-imx219.dtb \
+       k3-am69-sk-csi2-dual-imx219.dtb \
        k3-j721e-evm-pcie0-ep.dtb \
-       k3-j721e-sk-csi2-dual-imx219-dtbs \
+       k3-j721e-sk-csi2-dual-imx219.dtb \
        k3-j721s2-evm-pcie1-ep.dtb
 
 # Enable support for device-tree overlays
 DTC_FLAGS_k3-am625-beagleplay += -@
+DTC_FLAGS_k3-am625-phyboard-lyra-rdk += -@
 DTC_FLAGS_k3-am625-sk += -@
 DTC_FLAGS_k3-am62-lp-sk += -@
 DTC_FLAGS_k3-am62a7-sk += -@
 DTC_FLAGS_k3-am62p5-sk += -@
 DTC_FLAGS_k3-am642-evm += -@
+DTC_FLAGS_k3-am642-phyboard-electra-rdk += -@
 DTC_FLAGS_k3-am642-tqma64xxl-mbax4xxl += -@
 DTC_FLAGS_k3-am6548-iot2050-advanced-m2 += -@
 DTC_FLAGS_k3-am68-sk-base-board += -@
index c414905..9a17bd3 100644 (file)
 
                interrupt-parent = <&gic500>;
                interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
-               ti,power-button;
 
                regulators {
                        buck1_reg: buck1 {
index e9cffca..448a59d 100644 (file)
 
        usbss0: dwc3-usb@f900000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f900000 0x00 0x800>;
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
                clocks = <&k3_clks 161 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4008>;
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
 
        usbss1: dwc3-usb@f910000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f910000 0x00 0x800>;
+               reg = <0x00 0x0f910000 0x00 0x800>,
+                     <0x00 0x0f918000 0x00 0x400>;
                clocks = <&k3_clks 162 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4018>;
+               ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
index 6c4cec8..e8f4d13 100644 (file)
@@ -22,6 +22,7 @@
                simple-audio-card,format = "i2s";
                simple-audio-card,frame-master = <&codec_dai>;
                simple-audio-card,name = "verdin-wm8904";
+               simple-audio-card,mclk-fs = <256>;
                simple-audio-card,routing =
                        "Headphone Jack", "HPOUTL",
                        "Headphone Jack", "HPOUTR",
@@ -35,7 +36,6 @@
                        "Line", "Line In Jack";
 
                codec_dai: simple-audio-card,codec {
-                       clocks = <&audio_refclk1>;
                        sound-dai = <&wm8904_1a>;
                };
 
                        sound-dai = <&mcasp0>;
                };
        };
+
+       reg_usb_hub: regulator-usb-hub {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               regulator-boot-on;
+               regulator-name = "HUB_PWR_EN";
+       };
 };
 
 /* Verdin ETHs */
        pinctrl-0 = <&pinctrl_gpio_1>,
                    <&pinctrl_gpio_2>,
                    <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
 };
 
 /* Verdin I2C_3_HDMI */
        status = "okay";
 };
 
+/* Do not force CTRL_SLEEP_MOCI# always enabled */
+&reg_force_sleep_moci {
+       status = "disabled";
+};
+
 /* Verdin SD_1 */
 &sdhci1 {
        status = "okay";
 };
 
 &usb1 {
+       #address-cells = <1>;
+       #size-cells = <0>;
        status = "okay";
+
+       usb-hub@1 {
+               compatible = "usb424,2744";
+               reg = <1>;
+               vdd-supply = <&reg_usb_hub>;
+       };
 };
 
 /* Verdin CTRL_WAKE1_MICO# */
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index be62648..74eec1a 100644 (file)
        pinctrl-0 = <&pinctrl_gpio_1>,
                    <&pinctrl_gpio_2>,
                    <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
 };
 
 /* Verdin I2C_3_HDMI */
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index 77b1beb..754216d 100644 (file)
 &main_gpio0 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ctrl_sleep_moci>,
-                   <&pinctrl_gpio_1>,
-                   <&pinctrl_gpio_2>,
-                   <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_5>,
+                   <&pinctrl_gpio_6>,
+                   <&pinctrl_gpio_7>,
+                   <&pinctrl_gpio_8>;
 };
 
 /* Verdin I2C_1 */
        status = "okay";
 };
 
+&mcu_gpio0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_gpio_1>,
+                   <&pinctrl_gpio_2>,
+                   <&pinctrl_gpio_3>,
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
+};
+
 /* Verdin I2C_3_HDMI */
 &mcu_i2c0 {
        status = "okay";
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index 997dfaf..7372d39 100644 (file)
        pinctrl-0 = <&pinctrl_gpio_1>,
                    <&pinctrl_gpio_2>,
                    <&pinctrl_gpio_3>,
-                   <&pinctrl_gpio_4>;
+                   <&pinctrl_gpio_4>,
+                   <&pinctrl_pcie_1_reset>;
 };
 
 /* Verdin I2C_3_HDMI */
        status = "okay";
 };
 
+/* Verdin PCIE_1_RESET# */
+&verdin_pcie_1_reset_hog {
+       status = "okay";
+};
+
 /* Verdin UART_2 */
 &wkup_uart0 {
        status = "okay";
index e8d8857..2038c5e 100644 (file)
@@ -76,7 +76,7 @@
 
        memory@80000000 {
                device_type = "memory";
-               reg = <0x00000000 0x80000000 0x00000000 0x40000000>; /* 1G RAM */
+               reg = <0x00000000 0x80000000 0x00000000 0x80000000>; /* 2G RAM */
        };
 
        opp-table {
                vin-supply = <&reg_1v8>;
        };
 
+       /*
+        * By default we enable CTRL_SLEEP_MOCI#, this is required to have
+        * peripherals on the carrier board powered.
+        * If more granularity or power saving is required this can be disabled
+        * in the carrier board device tree files.
+        */
+       reg_force_sleep_moci: regulator-force-sleep-moci {
+               compatible = "regulator-fixed";
+               enable-active-high;
+               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
+               gpio = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-name = "CTRL_SLEEP_MOCI#";
+       };
+
        /* Verdin SD_1 Power Supply */
        reg_sdhc1_vmmc: regulator-sdhci1 {
                compatible = "regulator-fixed";
                >;
        };
 
+       /* Verdin SD_1_CD# as GPIO */
+       pinctrl_sd1_cd_gpio: main-gpio1-48-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 7) /* (D17) MMC1_SDCD.GPIO1_48 */ /* SODIMM 84 */
+               >;
+       };
+
        /* Verdin DSI_1_INT# (pulled-up as active-low) */
        pinctrl_dsi1_int: main-gpio1-49-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x22c, PIN_INPUT,        0) /* (B21) MMC1_DAT1 */ /* SODIMM 82 */
                        AM62X_IOPAD(0x228, PIN_INPUT,        0) /* (C21) MMC1_DAT2 */ /* SODIMM 70 */
                        AM62X_IOPAD(0x224, PIN_INPUT,        0) /* (D22) MMC1_DAT3 */ /* SODIMM 72 */
-                       AM62X_IOPAD(0x240, PIN_INPUT_PULLUP, 0) /* (D17) MMC1_SDCD */ /* SODIMM 84 */
                >;
        };
 
                "",
                "",
                "";
-
-       verdin_ctrl_sleep_moci: ctrl-sleep-moci-hog {
-               gpio-hog;
-               /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */
-               gpios = <31 GPIO_ACTIVE_HIGH>;
-               line-name = "CTRL_SLEEP_MOCI#";
-               output-high;
-       };
 };
 
 &main_gpio1 {
                "",
                "",
                "";
+
+       verdin_pcie_1_reset_hog: pcie-1-reset-hog {
+               gpio-hog;
+               /* Verdin PCIE_1_RESET# (SODIMM 244) */
+               gpios = <0 GPIO_ACTIVE_LOW>;
+               line-name = "PCIE_1_RESET#";
+               output-low;
+               status = "disabled";
+       };
 };
 
 /* Verdin CAN_2 */
 /* Verdin SD_1 */
 &sdhci1 {
        pinctrl-names = "default";
-       pinctrl-0 = <&pinctrl_sdhci1>;
+       pinctrl-0 = <&pinctrl_sdhci1>, <&pinctrl_sd1_cd_gpio>;
+       cd-gpios = <&main_gpio1 48 GPIO_ACTIVE_LOW>;
        disable-wp;
        vmmc-supply = <&reg_sdhc1_vmmc>;
        vqmmc-supply = <&reg_sdhc1_vqmmc>;
+       ti,fails-without-test-cd;
        status = "disabled";
 };
 
index 23ce1bf..66ddf2d 100644 (file)
                        compatible = "ti,am654-chipid";
                        reg = <0x14 0x4>;
                };
+
+               usb0_phy_ctrl: syscon@4008 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4008 0x4>;
+               };
+
+               usb1_phy_ctrl: syscon@4018 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4018 0x4>;
+               };
        };
 
        target-module@2b300050 {
index a34e0df..18e3070 100644 (file)
                };
        };
 
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_en_pins_default>;
+               /* Internal power on time(Figure 8-3) * 2 */
+               post-power-on-delay-ms = <10>;
+               /* Re-enable time(Figure 8-2) + 20uS */
+               power-off-delay-us = <80>;
+               reset-gpios = <&main_gpio0 38 GPIO_ACTIVE_LOW>;
+       };
+
        vsys_5v0: regulator-1 {
                bootph-all;
                compatible = "regulator-fixed";
                regulator-boot-on;
        };
 
-       wlan_en: regulator-3 {
-               /* OUTPUT of SN74AVC2T244DQMR */
-               compatible = "regulator-fixed";
-               regulator-name = "wlan_en";
-               regulator-min-microvolt = <1800000>;
-               regulator-max-microvolt = <1800000>;
-               enable-active-high;
-               regulator-always-on;
-               vin-supply = <&vdd_3v3>;
-               gpio = <&main_gpio0 38 GPIO_ACTIVE_HIGH>;
-               pinctrl-names = "default";
-               pinctrl-0 = <&wifi_en_pins_default>;
-       };
-
        vdd_3v3_sd: regulator-4 {
                /* output of TPS22918DBVR-U21 */
                bootph-all;
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x0160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */
                        AM62X_IOPAD(0x015c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
+                       AM62X_IOPAD(0x003c, PIN_INPUT, 7) /* (M25) GPMC0_AD0.GPIO0_15 */
+                       AM62X_IOPAD(0x018c, PIN_INPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
                >;
        };
 
                        AM62X_IOPAD(0x016c, PIN_INPUT, 1) /* (Y18) RGMII2_TD0.RMII2_TXD0 */
                        AM62X_IOPAD(0x0170, PIN_INPUT, 1) /* (AA18) RGMII2_TD1.RMII2_TXD1 */
                        AM62X_IOPAD(0x0164, PIN_INPUT, 1) /* (AA19) RGMII2_TX_CTL.RMII2_TX_EN */
-                       AM62X_IOPAD(0x018c, PIN_OUTPUT, 7) /* (AC21) RGMII2_RD2.GPIO1_5 */
                        AM62X_IOPAD(0x0190, PIN_INPUT, 7) /* (AE22) RGMII2_RD3.GPIO1_6 */
                        AM62X_IOPAD(0x01f0, PIN_OUTPUT, 5) /* (A18) EXT_REFCLK1.CLKOUT0 */
                >;
 
        cpsw3g_phy0: ethernet-phy@0 {
                reg = <0>;
+               reset-gpios = <&main_gpio0 15 GPIO_ACTIVE_LOW>;
+               reset-assert-us = <10000>;
+               reset-deassert-us = <50000>;
        };
 
        cpsw3g_phy1: ethernet-phy@1 {
                "USR0", "USR1", "USR2", "USR3", "", "", "USR4", /* 3-9 */
                "EEPROM_WP",                                    /* 10 */
                "CSI2_CAMERA_GPIO1", "CSI2_CAMERA_GPIO2",       /* 11-12 */
-               "CC1352P7_BOOT", "CC1352P7_RSTN", "", "", "",   /* 13-17 */
+               "CC1352P7_BOOT", "CC1352P7_RSTN", "GBE_RSTN", "", "",   /* 13-17 */
                "USR_BUTTON", "", "", "", "", "", "", "", "",   /* 18-26 */
                "", "", "", "", "", "", "", "", "", "HDMI_INT", /* 27-36 */
                "", "VDD_WLAN_EN", "", "", "WL_IRQ", "GBE_INTN",/* 37-42 */
 };
 
 &sdhci2 {
-       vmmc-supply = <&wlan_en>;
        pinctrl-names = "default";
        pinctrl-0 = <&wifi_pins_default>, <&wifi_32k_clk>;
        non-removable;
        ti,fails-without-test-cd;
        cap-power-off-card;
        keep-power-in-suspend;
+       mmc-pwrseq = <&sdio_pwrseq>;
        assigned-clocks = <&k3_clks 157 158>;
        assigned-clock-parents = <&k3_clks 157 160>;
        #address-cells = <1>;
index a83a904..50d2573 100644 (file)
@@ -31,7 +31,7 @@
        can_tc1: can-phy0 {
                compatible = "ti,tcan1042";
                #phy-cells = <0>;
-               max-bitrate = <5000000>;
+               max-bitrate = <8000000>;
                standby-gpios = <&gpio_exp 1 GPIO_ACTIVE_HIGH>;
        };
 
                };
        };
 
+       sound {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "phyBOARD-Lyra";
+               simple-audio-card,widgets =
+                       "Microphone",           "Mic Jack",
+                       "Headphone",            "Headphone Jack",
+                       "Speaker",              "External Speaker";
+               simple-audio-card,routing =
+                       "MIC3R",                "Mic Jack",
+                       "Mic Jack",             "Mic Bias",
+                       "Headphone Jack",       "HPLOUT",
+                       "Headphone Jack",       "HPROUT",
+                       "External Speaker",     "SPOP",
+                       "External Speaker",     "SPOM";
+               simple-audio-card,format = "dsp_b";
+               simple-audio-card,bitclock-master = <&sound_master>;
+               simple-audio-card,frame-master = <&sound_master>;
+               simple-audio-card,bitclock-inversion;
+
+               simple-audio-card,cpu {
+                       sound-dai = <&mcasp2>;
+               };
+
+               sound_master: simple-audio-card,codec {
+                               sound-dai = <&audio_codec>;
+                               clocks = <&audio_refclk1>;
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                };
        };
 
+       vcc_1v8: regulator-vcc-1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
+
        vcc_3v3_mmc: regulator-vcc-3v3-mmc {
                compatible = "regulator-fixed";
                regulator-name = "VCC_3V3_MMC";
                regulator-always-on;
                regulator-boot-on;
        };
+
+       vcc_3v3_sw: regulator-vcc-3v3-sw {
+               compatible = "regulator-fixed";
+               regulator-name = "VCC_3V3_SW";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-always-on;
+               regulator-boot-on;
+       };
 };
 
 &main_pmx0 {
+       audio_ext_refclk1_pins_default: audio-ext-refclk1-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x0a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
+               >;
+       };
+
        gpio_keys_pins_default: gpio-keys-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x1d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */
                >;
        };
 
+       main_mcasp2_pins_default: main-mcasp2-default-pins {
+               pinctrl-single,pins = <
+                       AM62X_IOPAD(0x070, PIN_INPUT, 3) /* (T24) GPMC0_AD13.MCASP2_ACLKX */
+                       AM62X_IOPAD(0x06c, PIN_INPUT, 3) /* (T22) GPMC0_AD12.MCASP2_AFSX */
+                       AM62X_IOPAD(0x064, PIN_OUTPUT, 3) /* (T25) GPMC0_AD10.MCASP2_AXR2 */
+                       AM62X_IOPAD(0x068, PIN_INPUT, 3) /* (R21) GPMC0_AD11.MCASP2_AXR3 */
+               >;
+       };
+
        main_mmc1_pins_default: main-mmc1-default-pins {
                pinctrl-single,pins = <
                        AM62X_IOPAD(0x23c, PIN_INPUT_PULLUP, 0) /* (A21) MMC1_CMD */
        clock-frequency = <100000>;
        status = "okay";
 
+       audio_codec: audio-codec@18 {
+               pinctrl-names = "default";
+               pinctrl-0 = <&audio_ext_refclk1_pins_default>;
+
+               #sound-dai-cells = <0>;
+               compatible = "ti,tlv320aic3007";
+               reg = <0x18>;
+               ai3x-micbias-vg = <2>;
+
+               AVDD-supply = <&vcc_3v3_sw>;
+               IOVDD-supply = <&vcc_3v3_sw>;
+               DRVDD-supply = <&vcc_3v3_sw>;
+               DVDD-supply = <&vcc_1v8>;
+       };
+
        gpio_exp: gpio-expander@21 {
                pinctrl-names = "default";
                pinctrl-0 = <&gpio_exp_int_pins_default>;
                                  "GPIO6_ETH1_USER_RESET", "GPIO7_AUDIO_USER_RESET";
        };
 
+       usb-pd@22 {
+               compatible = "ti,tps6598x";
+               reg = <0x22>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       self-powered;
+                       data-role = "dual";
+                       power-role = "sink";
+                       port {
+                               usb_con_hs: endpoint {
+                                       remote-endpoint = <&typec_hs>;
+                               };
+                       };
+               };
+       };
+
        sii9022: bridge-hdmi@39 {
                compatible = "sil,sii9022";
                reg = <0x39>;
        status = "okay";
 };
 
+&mcasp2 {
+       #sound-dai-cells = <0>;
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_mcasp2_pins_default>;
+
+       /* MCASP_IIS_MODE */
+       op-mode = <0>;
+       tdm-slots = <2>;
+
+       /* 0: INACTIVE, 1: TX, 2: RX */
+       serial-dir = <
+                       0 0 1 2
+                       0 0 0 0
+                       0 0 0 0
+                       0 0 0 0
+       >;
+       tx-num-evt = <32>;
+       rx-num-evt = <32>;
+       status = "okay";
+};
+
 &sdhci1 {
        vmmc-supply = <&vcc_3v3_mmc>;
        vqmmc-supply = <&vddshv5_sdio>;
 };
 
 &usb0 {
-       dr_mode = "peripheral";
+       usb-role-switch;
+
+       port {
+               typec_hs: endpoint {
+                       remote-endpoint = <&usb_con_hs>;
+               };
+       };
 };
 
 &usb1 {
index aa1e057..bf9c2d9 100644 (file)
                ti,itap-del-sel-sd-hs = <0x0>;
                ti,itap-del-sel-sdr12 = <0x0>;
                ti,itap-del-sel-sdr25 = <0x0>;
-               no-1-8-v;
                status = "disabled";
        };
 
                ti,itap-del-sel-sd-hs = <0x0>;
                ti,itap-del-sel-sdr12 = <0x0>;
                ti,itap-del-sel-sdr25 = <0x0>;
-               no-1-8-v;
                status = "disabled";
        };
 
        usbss0: dwc3-usb@f900000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f900000 0x00 0x800>;
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
                clocks = <&k3_clks 161 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4008>;
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
                        interrupt-names = "host", "peripheral";
                        maximum-speed = "high-speed";
                        dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
                };
        };
 
        usbss1: dwc3-usb@f910000 {
                compatible = "ti,am62-usb";
-               reg = <0x00 0x0f910000 0x00 0x800>;
+               reg = <0x00 0x0f910000 0x00 0x800>,
+                     <0x00 0x0f918000 0x00 0x400>;
                clocks = <&k3_clks 162 3>;
                clock-names = "ref";
-               ti,syscon-phy-pll-refclk = <&wkup_conf 0x4018>;
+               ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>;
                #address-cells = <2>;
                #size-cells = <2>;
                power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
                        interrupt-names = "host", "peripheral";
                        maximum-speed = "high-speed";
                        dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
                };
        };
 
                        #size-cells = <0>;
                };
        };
+
+       vpu: video-codec@30210000 {
+               compatible = "ti,j721s2-wave521c", "cnm,wave521c";
+               reg = <0x00 0x30210000 0x00 0x10000>;
+               clocks = <&k3_clks 204 2>;
+               power-domains = <&k3_pds 204 TI_SCI_PD_EXCLUSIVE>;
+       };
 };
index f7bec48..98043e9 100644 (file)
                        compatible = "ti,am654-chipid";
                        reg = <0x14 0x4>;
                };
+
+               usb0_phy_ctrl: syscon@4008 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4008 0x4>;
+               };
+
+               usb1_phy_ctrl: syscon@4018 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4018 0x4>;
+               };
        };
 
        wkup_uart0: serial@2b300000 {
index f241637..fa43cd0 100644 (file)
                regulator-boot-on;
        };
 
+       vddshv_sdio: regulator-5 {
+               compatible = "regulator-gpio";
+               regulator-name = "vddshv_sdio";
+               pinctrl-names = "default";
+               pinctrl-0 = <&vddshv_sdio_pins_default>;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               regulator-boot-on;
+               vin-supply = <&ldo1>;
+               gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
+               states = <1800000 0x0>,
+                        <3300000 0x1>;
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
                        AM62AX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */
                >;
        };
+
+       vddshv_sdio_pins_default: vddshv-sdio-default-pins {
+               pinctrl-single,pins = <
+                       AM62AX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */
+               >;
+       };
 };
 
 &mcu_pmx0 {
        /* SD/MMC */
        status = "okay";
        vmmc-supply = <&vdd_mmc1>;
+       vqmmc-supply = <&vddshv_sdio>;
        pinctrl-names = "default";
        pinctrl-0 = <&main_mmc1_pins_default>;
        disable-wp;
index 7337a9e..900d1f9 100644 (file)
                status = "disabled";
        };
 
+       usbss0: usb@f900000 {
+               compatible = "ti,am62-usb";
+               reg = <0x00 0x0f900000 0x00 0x800>,
+                     <0x00 0x0f908000 0x00 0x400>;
+               clocks = <&k3_clks 161 3>;
+               clock-names = "ref";
+               ti,syscon-phy-pll-refclk = <&usb0_phy_ctrl 0x0>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               power-domains = <&k3_pds 178 TI_SCI_PD_EXCLUSIVE>;
+               ranges;
+               status = "disabled";
+
+               usb0: usb@31000000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x00 0x31000000 0x00 0x50000>;
+                       interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+                       <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
+                       interrupt-names = "host", "peripheral";
+                       maximum-speed = "high-speed";
+                       dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
+               };
+       };
+
+       usbss1: usb@f910000 {
+               compatible = "ti,am62-usb";
+               reg = <0x00 0x0f910000 0x00 0x800>,
+                     <0x00 0x0f918000 0x00 0x400>;
+               clocks = <&k3_clks 162 3>;
+               clock-names = "ref";
+               ti,syscon-phy-pll-refclk = <&usb1_phy_ctrl 0x0>;
+               #address-cells = <2>;
+               #size-cells = <2>;
+               power-domains = <&k3_pds 179 TI_SCI_PD_EXCLUSIVE>;
+               ranges;
+               status = "disabled";
+
+               usb1: usb@31100000 {
+                       compatible = "snps,dwc3";
+                       reg = <0x00 0x31100000 0x00 0x50000>;
+                       interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>, /* irq.0 */
+                       <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; /* irq.0 */
+                       interrupt-names = "host", "peripheral";
+                       maximum-speed = "high-speed";
+                       dr_mode = "otg";
+                       snps,usb2-gadget-lpm-disable;
+                       snps,usb2-lpm-disable;
+               };
+       };
+
        fss: bus@fc00000 {
                compatible = "simple-bus";
                reg = <0x00 0x0fc00000 0x00 0x70000>;
                assigned-clock-parents = <&k3_clks 13 11>;
                clock-names = "fck";
                power-domains = <&k3_pds 13 TI_SCI_PD_EXCLUSIVE>;
+               status = "disabled";
 
                dmas = <&main_pktdma 0xc600 15>,
                       <&main_pktdma 0xc601 15>,
                                label = "port1";
                                phys = <&phy_gmii_sel 1>;
                                mac-address = [00 00 00 00 00 00];
+                               status = "disabled";
                        };
 
                        cpsw_port2: port@2 {
                                label = "port2";
                                phys = <&phy_gmii_sel 2>;
                                mac-address = [00 00 00 00 00 00];
+                               status = "disabled";
                        };
                };
 
index a84756c..c71d962 100644 (file)
                        reg = <0x14 0x4>;
                        bootph-all;
                };
+
+               usb0_phy_ctrl: syscon@4008 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4008 0x4>;
+               };
+
+               usb1_phy_ctrl: syscon@4018 {
+                       compatible = "ti,am62-usb-phy-ctrl", "syscon";
+                       reg = <0x4018 0x4>;
+               };
        };
 
        wkup_uart0: serial@2b300000 {
index e86f34e..6e72346 100644 (file)
@@ -27,6 +27,8 @@
                spi0 = &ospi0;
                ethernet0 = &cpsw_port1;
                ethernet1 = &cpsw_port2;
+               usb0 = &usb0;
+               usb1 = &usb1;
        };
 
        chosen {
                bootph-all;
        };
 
+       main_usb1_pins_default: main-usb1-default-pins {
+               pinctrl-single,pins = <
+                       AM62PX_IOPAD(0x0258, PIN_INPUT, 0) /* (G21) USB1_DRVVBUS */
+               >;
+       };
+
        main_wlirq_pins_default: main-wlirq-default-pins {
                pinctrl-single,pins = <
                        AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 */
        };
 };
 
+&main_i2c0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_i2c0_pins_default>;
+       clock-frequency = <400000>;
+
+       typec_pd0: usb-power-controller@3f {
+               compatible = "ti,tps6598x";
+               reg = <0x3f>;
+
+               connector {
+                       compatible = "usb-c-connector";
+                       label = "USB-C";
+                       self-powered;
+                       data-role = "dual";
+                       power-role = "sink";
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               port@0 {
+                                       reg = <0>;
+                                       usb_con_hs: endpoint {
+                                               remote-endpoint = <&usb0_hs_ep>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
+
 &main_i2c1 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-names = "default";
        pinctrl-0 = <&main_rgmii1_pins_default>,
                    <&main_rgmii2_pins_default>;
+       status = "okay";
 };
 
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
+       status = "okay";
 };
 
 &cpsw_port2 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy1>;
+       status = "okay";
 };
 
 &cpsw3g_mdio {
        };
 };
 
+&usbss0 {
+       status = "okay";
+       ti,vbus-divider;
+};
+
+&usbss1 {
+       status = "okay";
+       ti,vbus-divider;
+};
+
+&usb0 {
+       usb-role-switch;
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       port@0 {
+               reg = <0>;
+               usb0_hs_ep: endpoint {
+                       remote-endpoint = <&usb_con_hs>;
+               };
+       };
+};
+
+&usb1 {
+       dr_mode = "host";
+       pinctrl-names = "default";
+       pinctrl-0 = <&main_usb1_pins_default>;
+};
+
 &mcasp1 {
        status = "okay";
        #sound-dai-cells = <0>;
        pinctrl-0 = <&ospi0_pins_default>;
        bootph-all;
 
-       flash@0{
+       flash@0 {
                compatible = "jedec,spi-nor";
                reg = <0x0>;
                spi-tx-bus-width = <8>;
index 53fe1d0..e20e4ff 100644 (file)
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
-       current-speed = <115200>;
 };
 
 /* main_uart1 is reserved for firmware usage */
diff --git a/arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-gpio-fan.dtso b/arch/arm64/boot/dts/ti/k3-am642-phyboard-electra-gpio-fan.dtso
new file mode 100644 (file)
index 0000000..5057658
--- /dev/null
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-only OR MIT
+/*
+ * Copyright (C) 2024 PHYTEC America LLC
+ * Author: Nathan Morrisson <nmorrisson@phytec.com>
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/thermal/thermal.h>
+#include "k3-pinctrl.h"
+
+&{/} {
+       fan: gpio-fan {
+               compatible = "gpio-fan";
+               gpio-fan,speed-map = <0 0 8600 1>;
+               gpios = <&main_gpio0 28 GPIO_ACTIVE_LOW>;
+               #cooling-cells = <2>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&gpio_fan_pins_default>;
+       };
+};
+
+&main_pmx0 {
+       gpio_fan_pins_default: gpio-fan-default-pins {
+               pinctrl-single,pins = <
+                       AM64X_IOPAD(0x070, PIN_OUTPUT, 7) /* (V18) GPMC0_AD13.GPIO0_28 */
+               >;
+       };
+};
+
+&thermal_zones {
+       main0_thermal: main0-thermal {
+               trips {
+                       main0_thermal_trip0: main0-thermal-trip {
+                               temperature = <65000>;  /* millicelsius */
+                               hysteresis = <2000>;    /* millicelsius */
+                               type = "active";
+                       };
+               };
+
+               cooling-maps {
+                       map0 {
+                               trip = <&main0_thermal_trip0>;
+                               cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                       };
+               };
+       };
+};
index 8237b8c..6df331c 100644 (file)
@@ -42,7 +42,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&can_tc1_pins_default>;
                #phy-cells = <0>;
-               max-bitrate = <5000000>;
+               max-bitrate = <8000000>;
                standby-gpios = <&main_gpio0 32 GPIO_ACTIVE_HIGH>;
        };
 
@@ -51,7 +51,7 @@
                pinctrl-names = "default";
                pinctrl-0 = <&can_tc2_pins_default>;
                #phy-cells = <0>;
-               max-bitrate = <5000000>;
+               max-bitrate = <8000000>;
                standby-gpios = <&main_gpio0 35 GPIO_ACTIVE_HIGH>;
        };
 
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
-       current-speed = <115200>;
 };
 
 &main_uart1 {
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart1_pins_default>;
        uart-has-rtscts;
-       current-speed = <115200>;
 };
 
 &sdhci1 {
index 67cd41b..5b028b3 100644 (file)
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&main_uart0_pins_default>;
-       current-speed = <115200>;
 };
 
 &main_uart1 {
index c50a585..ef78977 100644 (file)
 };
 
 &icssg0_eth {
-       status = "disabled";
-};
+       compatible = "ti,am654-sr1-icssg-prueth";
 
-&icssg0_mdio {
-       status = "disabled";
+       ti,prus = <&pru0_0>, <&rtu0_0>, <&pru0_1>, <&rtu0_1>;
+       firmware-name = "ti-pruss/am65x-pru0-prueth-fw.elf",
+                       "ti-pruss/am65x-rtu0-prueth-fw.elf",
+                       "ti-pruss/am65x-pru1-prueth-fw.elf",
+                       "ti-pruss/am65x-rtu1-prueth-fw.elf";
+
+       ti,pruss-gp-mux-sel = <2>,      /* MII mode */
+                             <2>,
+                             <2>,      /* MII mode */
+                             <2>;
+
+       dmas = <&main_udmap 0xc100>, /* egress slice 0 */
+              <&main_udmap 0xc101>, /* egress slice 0 */
+              <&main_udmap 0xc102>, /* egress slice 0 */
+              <&main_udmap 0xc103>, /* egress slice 0 */
+              <&main_udmap 0xc104>, /* egress slice 1 */
+              <&main_udmap 0xc105>, /* egress slice 1 */
+              <&main_udmap 0xc106>, /* egress slice 1 */
+              <&main_udmap 0xc107>, /* egress slice 1 */
+              <&main_udmap 0x4100>, /* ingress slice 0 */
+              <&main_udmap 0x4101>, /* ingress slice 1 */
+              <&main_udmap 0x4102>, /* mgmnt rsp slice 0 */
+              <&main_udmap 0x4103>; /* mgmnt rsp slice 1 */
+       dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
+                   "tx1-0", "tx1-1", "tx1-2", "tx1-3",
+                   "rx0", "rx1",
+                   "rxmgm0", "rxmgm1";
 };
index ff85711..ed71561 100644 (file)
@@ -66,7 +66,7 @@
                assigned-clock-parents = <&k3_clks 153 8>, <&k3_clks 153 4>;
                ti,serdes-clk = <&serdes0_clk>;
                #clock-cells = <1>;
-               mux-controls = <&serdes_mux 0>;
+               mux-controls = <&serdes0_mux 0>;
        };
 
        serdes1: serdes@910000 {
@@ -81,7 +81,7 @@
                assigned-clock-parents = <&k3_clks 154 9>, <&k3_clks 154 5>;
                ti,serdes-clk = <&serdes1_clk>;
                #clock-cells = <1>;
-               mux-controls = <&serdes_mux 1>;
+               mux-controls = <&serdes1_mux 0>;
        };
 
        main_uart0: serial@2800000 {
@@ -89,7 +89,6 @@
                reg = <0x00 0x02800000 0x00 0x100>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
                interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
                mmc-ddr-1_8v;
                mmc-hs200-1_8v;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
                ti,otap-del-sel-legacy = <0x0>;
                ti,otap-del-sel-mmc-hs = <0x0>;
-               ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0x0>;
-               ti,otap-del-sel-sdr25 = <0x0>;
-               ti,otap-del-sel-sdr50 = <0x8>;
-               ti,otap-del-sel-sdr104 = <0x7>;
-               ti,otap-del-sel-ddr50 = <0x5>;
                ti,otap-del-sel-ddr52 = <0x5>;
                ti,otap-del-sel-hs200 = <0x5>;
-               ti,otap-del-sel-hs400 = <0x0>;
-               ti,trm-icp = <0x8>;
+               ti,itap-del-sel-ddr52 = <0x0>;
                dma-coherent;
                status = "disabled";
        };
                clocks = <&k3_clks 48 0>, <&k3_clks 48 1>;
                clock-names = "clk_ahb", "clk_xin";
                interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
+               ti,clkbuf-sel = <0x7>;
+               ti,trm-icp = <0x8>;
                ti,otap-del-sel-legacy = <0x0>;
-               ti,otap-del-sel-mmc-hs = <0x0>;
                ti,otap-del-sel-sd-hs = <0x0>;
-               ti,otap-del-sel-sdr12 = <0x0>;
-               ti,otap-del-sel-sdr25 = <0x0>;
+               ti,otap-del-sel-sdr12 = <0xf>;
+               ti,otap-del-sel-sdr25 = <0xf>;
                ti,otap-del-sel-sdr50 = <0x8>;
                ti,otap-del-sel-sdr104 = <0x7>;
                ti,otap-del-sel-ddr50 = <0x4>;
-               ti,otap-del-sel-ddr52 = <0x4>;
-               ti,otap-del-sel-hs200 = <0x7>;
-               ti,clkbuf-sel = <0x7>;
-               ti,trm-icp = <0x8>;
+               ti,itap-del-sel-legacy = <0xa>;
+               ti,itap-del-sel-sd-hs = <0x1>;
+               ti,itap-del-sel-sdr12 = <0xa>;
+               ti,itap-del-sel-sdr25 = <0x1>;
                dma-coherent;
                status = "disabled";
        };
                ranges = <0x0 0x0 0x00100000 0x1c000>;
 
                serdes0_clk: clock@4080 {
-                       compatible = "syscon";
-                       reg = <0x00004080 0x4>;
+                       compatible = "ti,am654-serdes-ctrl", "syscon";
+                       reg = <0x4080 0x4>;
+
+                       serdes0_mux: mux-controller {
+                               compatible = "mmio-mux";
+                               #mux-control-cells = <1>;
+                               mux-reg-masks = <0x0 0x3>; /* lane select */
+                       };
                };
 
                serdes1_clk: clock@4090 {
-                       compatible = "syscon";
-                       reg = <0x00004090 0x4>;
-               };
+                       compatible = "ti,am654-serdes-ctrl", "syscon";
+                       reg = <0x4090 0x4>;
 
-               serdes_mux: mux-controller {
-                       compatible = "mmio-mux";
-                       #mux-control-cells = <1>;
-                       mux-reg-masks = <0x4080 0x3>, /* SERDES0 lane select */
-                                       <0x4090 0x3>; /* SERDES1 lane select */
+                       serdes1_mux: mux-controller {
+                               compatible = "mmio-mux";
+                               #mux-control-cells = <1>;
+                               mux-reg-masks = <0x0 0x3>; /* lane select */
+                       };
                };
 
                dss_oldi_io_ctrl: dss-oldi-io-ctrl@41e0 {
index 6ff3ccc..8feab93 100644 (file)
@@ -43,7 +43,6 @@
                reg = <0x00 0x40a00000 0x00 0x100>;
                interrupts = <GIC_SPI 565 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <96000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
                compatible = "simple-bus";
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* OSPI0 Memory */
+                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
index 3752789..eee072e 100644 (file)
@@ -59,7 +59,6 @@
                reg = <0x42300000 0x100>;
                interrupts = <GIC_SPI 697 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 150 TI_SCI_PD_EXCLUSIVE>;
                status = "disabled";
        };
index 50de2a4..d88651c 100644 (file)
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (L37) WKUP_GPIO0_6.WKUP_UART0_CTSn */
-                       J721S2_WKUP_IOPAD(0x074, PIN_INPUT, 0) /* (L36) WKUP_GPIO0_7.WKUP_UART0_RTSn */
-                       J721S2_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
-                       J721S2_WKUP_IOPAD(0x04c, PIN_INPUT, 0) /* (K34) WKUP_UART0_TXD */
+                       J784S4_WKUP_IOPAD(0x070, PIN_INPUT, 0) /* (L37) WKUP_UART0_CTSn */
+                       J784S4_WKUP_IOPAD(0x074, PIN_OUTPUT, 0) /* (L36) WKUP_UART0_RTSn */
+                       J784S4_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
+                       J784S4_WKUP_IOPAD(0x04c, PIN_OUTPUT, 0) /* (K34) WKUP_UART0_TXD */
                >;
        };
 
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
-                       J721S2_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
+                       J784S4_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
+                       J784S4_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
                >;
        };
 
index 657f9cc..9386bf3 100644 (file)
                reg = <0x00 0x02800000 0x00 0x100>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 146 2>;
                clock-names = "fclk";
                reg = <0x00 0x02810000 0x00 0x100>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 278 2>;
                clock-names = "fclk";
                reg = <0x00 0x02820000 0x00 0x100>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 279 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 279 2>;
                clock-names = "fclk";
                reg = <0x00 0x02830000 0x00 0x100>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 280 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 280 2>;
                clock-names = "fclk";
                reg = <0x00 0x02840000 0x00 0x100>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 281 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 281 2>;
                clock-names = "fclk";
                reg = <0x00 0x02850000 0x00 0x100>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 282 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 282 2>;
                clock-names = "fclk";
                reg = <0x00 0x02860000 0x00 0x100>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 283 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 283 2>;
                clock-names = "fclk";
                reg = <0x00 0x02870000 0x00 0x100>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 284 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 284 2>;
                clock-names = "fclk";
                reg = <0x00 0x02880000 0x00 0x100>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 285 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 285 2>;
                clock-names = "fclk";
                reg = <0x00 0x02890000 0x00 0x100>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 286 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 286 2>;
                clock-names = "fclk";
index 7cf21c9..fccaabf 100644 (file)
                reg = <0x00 0x42300000 0x00 0x100>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 287 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 287 2>;
                clock-names = "fclk";
                reg = <0x00 0x40a00000 0x00 0x100>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <96000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 149 2>;
                clock-names = "fclk";
 
        fss: bus@47000000 {
                compatible = "simple-bus";
-               reg = <0x00 0x47000000 0x00 0x100>;
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47034000 0x0 0x47040000 0x0 0x100>, /* HBMC Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>; /* HBMC/OSPI0 Memory */
 
                hbmc_mux: mux-controller@47000004 {
                        compatible = "reg-mux";
index c7eafbc..0da785b 100644 (file)
                reg = <0x00 0x02800000 0x00 0x100>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 146 0>;
                clock-names = "fclk";
                reg = <0x00 0x02810000 0x00 0x100>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 278 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 278 0>;
                clock-names = "fclk";
                reg = <0x00 0x02820000 0x00 0x100>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 279 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 279 0>;
                clock-names = "fclk";
                reg = <0x00 0x02830000 0x00 0x100>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 280 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 280 0>;
                clock-names = "fclk";
                reg = <0x00 0x02840000 0x00 0x100>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 281 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 281 0>;
                clock-names = "fclk";
                reg = <0x00 0x02850000 0x00 0x100>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 282 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 282 0>;
                clock-names = "fclk";
                reg = <0x00 0x02860000 0x00 0x100>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 283 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 283 0>;
                clock-names = "fclk";
                reg = <0x00 0x02870000 0x00 0x100>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 284 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 284 0>;
                clock-names = "fclk";
                reg = <0x00 0x02880000 0x00 0x100>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 285 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 285 0>;
                clock-names = "fclk";
                reg = <0x00 0x02890000 0x00 0x100>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 286 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 286 0>;
                clock-names = "fclk";
index 4618b69..9349ae0 100644 (file)
                reg = <0x00 0x42300000 0x00 0x100>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <48000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 287 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 287 0>;
                clock-names = "fclk";
                reg = <0x00 0x40a00000 0x00 0x100>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
                clock-frequency = <96000000>;
-               current-speed = <115200>;
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
                clocks = <&k3_clks 149 0>;
                clock-names = "fclk";
 
        fss: bus@47000000 {
                compatible = "simple-bus";
-               reg = <0x0 0x47000000 0x0 0x100>;
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47034000 0x0 0x47034000 0x0 0x100>, /* HBMC Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* HBMC/OSPI0 Memory */
+                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
 
                hbmc_mux: mux-controller@47000004 {
                        compatible = "reg-mux";
index b70c861..9ed6949 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02800000 0x00 0x200>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 146 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02810000 0x00 0x200>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 350 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 350 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02820000 0x00 0x200>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 351 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 351 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02830000 0x00 0x200>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 352 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 352 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02840000 0x00 0x200>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 353 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 353 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02850000 0x00 0x200>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 354 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 354 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02860000 0x00 0x200>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 355 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 355 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02870000 0x00 0x200>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 356 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 356 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02880000 0x00 0x200>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 357 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 357 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02890000 0x00 0x200>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 358 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 358 TI_SCI_PD_EXCLUSIVE>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
-               /* Masking support for SDR104 capability */
-               sdhci-caps-mask = <0x00000003 0x00000000>;
                status = "disabled";
        };
 
index eaf7f70..5ccb04c 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x42300000 0x00 0x200>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 359 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 359 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x40a00000 0x00 0x200>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 149 3>;
                clock-names = "fclk";
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
index be4502f..568e6a0 100644 (file)
                #size-cells = <2>;
                ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
                         <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
+                        <0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
                         <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
                         <0x00 0x0d800000 0x00 0x0d800000 0x00 0x00800000>, /* PCIe Core*/
                         <0x00 0x18000000 0x00 0x18000000 0x00 0x08000000>, /* PCIe1 DAT0 */
index cee3a86..bf3c246 100644 (file)
 &cpsw_port1 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy0>;
-};
-
-&cpsw_port2 {
-       status = "disabled";
+       status = "okay";
 };
 
 &main_gpio1 {
 
 };
 
+&sdhci0 {
+       disable-wp;
+       bootph-all;
+       ti,driver-strength-ohm = <50>;
+       status = "okay";
+};
+
 &sdhci1 {
        /* SD/MMC */
        vmmc-supply = <&vdd_mmc1>;
        pinctrl-0 = <&main_mmc1_pins_default>;
        ti,driver-strength-ohm = <50>;
        disable-wp;
-       no-1-8-v;
        status = "okay";
        bootph-all;
 };
index 81fd7af..d511b25 100644 (file)
        wkup_uart0_pins_default: wkup-uart0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
-                       J721S2_WKUP_IOPAD(0x04c, PIN_INPUT, 0) /* (K34) WKUP_UART0_TXD */
+                       J784S4_WKUP_IOPAD(0x048, PIN_INPUT, 0) /* (K35) WKUP_UART0_RXD */
+                       J784S4_WKUP_IOPAD(0x04c, PIN_OUTPUT, 0) /* (K34) WKUP_UART0_TXD */
                >;
        };
 
        wkup_i2c0_pins_default: wkup-i2c0-default-pins {
                bootph-all;
                pinctrl-single,pins = <
-                       J721S2_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
-                       J721S2_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
+                       J784S4_WKUP_IOPAD(0x98, PIN_INPUT, 0) /* (N33) WKUP_I2C0_SCL */
+                       J784S4_WKUP_IOPAD(0x9c, PIN_INPUT, 0) /* (N35) WKUP_I2C0_SDA */
                >;
        };
 
index b67c374..6a4554c 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02800000 0x00 0x200>;
                interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 146 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 146 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02810000 0x00 0x200>;
                interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 388 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 388 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02820000 0x00 0x200>;
                interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 389 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 389 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02830000 0x00 0x200>;
                interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 390 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 390 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02840000 0x00 0x200>;
                interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 391 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 391 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02850000 0x00 0x200>;
                interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 392 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 392 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02860000 0x00 0x200>;
                interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 393 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 393 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02870000 0x00 0x200>;
                interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 394 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 394 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02880000 0x00 0x200>;
                interrupts = <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 395 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 395 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x02890000 0x00 0x200>;
                interrupts = <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 396 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 396 TI_SCI_PD_EXCLUSIVE>;
                ti,clkbuf-sel = <0x7>;
                ti,trm-icp = <0x8>;
                dma-coherent;
-               sdhci-caps-mask = <0x00000003 0x00000000>;
-               no-1-8-v;
                status = "disabled";
        };
 
index 77a8d99..2e18d91 100644 (file)
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x42300000 0x00 0x200>;
                interrupts = <GIC_SPI 897 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 397 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 397 TI_SCI_PD_EXCLUSIVE>;
                compatible = "ti,j721e-uart", "ti,am654-uart";
                reg = <0x00 0x40a00000 0x00 0x200>;
                interrupts = <GIC_SPI 846 IRQ_TYPE_LEVEL_HIGH>;
-               current-speed = <115200>;
                clocks = <&k3_clks 149 0>;
                clock-names = "fclk";
                power-domains = <&k3_pds 149 TI_SCI_PD_EXCLUSIVE>;
 
        fss: bus@47000000 {
                compatible = "simple-bus";
-               reg = <0x00 0x47000000 0x00 0x100>;
                #address-cells = <2>;
                #size-cells = <2>;
-               ranges;
+               ranges = <0x0 0x47000000 0x0 0x47000000 0x0 0x100>, /* FSS Control */
+                        <0x0 0x47040000 0x0 0x47040000 0x0 0x100>, /* OSPI0 Control */
+                        <0x0 0x47050000 0x0 0x47050000 0x0 0x100>, /* OSPI1 Control */
+                        <0x5 0x00000000 0x5 0x00000000 0x1 0x0000000>, /* OSPI0 Memory */
+                        <0x7 0x00000000 0x7 0x00000000 0x1 0x0000000>; /* OSPI1 Memory */
 
                ospi0: spi@47040000 {
                        compatible = "ti,am654-ospi", "cdns,qspi-nor";
index 6e2e92f..da7368e 100644 (file)
                #size-cells = <2>;
                ranges = <0x00 0x00100000 0x00 0x00100000 0x00 0x00020000>, /* ctrl mmr */
                         <0x00 0x00600000 0x00 0x00600000 0x00 0x00031100>, /* GPIO */
+                        <0x00 0x00700000 0x00 0x00700000 0x00 0x00001000>, /* ESM */
                         <0x00 0x01000000 0x00 0x01000000 0x00 0x0d000000>, /* Most peripherals */
                         <0x00 0x04210000 0x00 0x04210000 0x00 0x00010000>, /* VPU0 */
                         <0x00 0x04220000 0x00 0x04220000 0x00 0x00010000>, /* VPU1 */
index 25d20d8..34d0e0b 100644 (file)
        };
 
        pmu {
-               compatible = "arm,armv8-pmuv3";
+               compatible = "arm,cortex-a53-pmu";
                interrupt-parent = <&gic>;
                interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
                             <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
index f35324b..e0ddf8f 100644 (file)
        dma-noncoherent;
        interrupt-parent = <&plic>;
 
+       irqc: interrupt-controller@110a0000 {
+               compatible = "renesas,r9a07g043f-irqc";
+               reg = <0 0x110a0000 0 0x20000>;
+               #interrupt-cells = <2>;
+               #address-cells = <0>;
+               interrupt-controller;
+               interrupts = <32 IRQ_TYPE_LEVEL_HIGH>,
+                            <33 IRQ_TYPE_LEVEL_HIGH>,
+                            <34 IRQ_TYPE_LEVEL_HIGH>,
+                            <35 IRQ_TYPE_LEVEL_HIGH>,
+                            <36 IRQ_TYPE_LEVEL_HIGH>,
+                            <37 IRQ_TYPE_LEVEL_HIGH>,
+                            <38 IRQ_TYPE_LEVEL_HIGH>,
+                            <39 IRQ_TYPE_LEVEL_HIGH>,
+                            <40 IRQ_TYPE_LEVEL_HIGH>,
+                            <476 IRQ_TYPE_LEVEL_HIGH>,
+                            <477 IRQ_TYPE_LEVEL_HIGH>,
+                            <478 IRQ_TYPE_LEVEL_HIGH>,
+                            <479 IRQ_TYPE_LEVEL_HIGH>,
+                            <480 IRQ_TYPE_LEVEL_HIGH>,
+                            <481 IRQ_TYPE_LEVEL_HIGH>,
+                            <482 IRQ_TYPE_LEVEL_HIGH>,
+                            <483 IRQ_TYPE_LEVEL_HIGH>,
+                            <484 IRQ_TYPE_LEVEL_HIGH>,
+                            <485 IRQ_TYPE_LEVEL_HIGH>,
+                            <486 IRQ_TYPE_LEVEL_HIGH>,
+                            <487 IRQ_TYPE_LEVEL_HIGH>,
+                            <488 IRQ_TYPE_LEVEL_HIGH>,
+                            <489 IRQ_TYPE_LEVEL_HIGH>,
+                            <490 IRQ_TYPE_LEVEL_HIGH>,
+                            <491 IRQ_TYPE_LEVEL_HIGH>,
+                            <492 IRQ_TYPE_LEVEL_HIGH>,
+                            <493 IRQ_TYPE_LEVEL_HIGH>,
+                            <494 IRQ_TYPE_LEVEL_HIGH>,
+                            <495 IRQ_TYPE_LEVEL_HIGH>,
+                            <496 IRQ_TYPE_LEVEL_HIGH>,
+                            <497 IRQ_TYPE_LEVEL_HIGH>,
+                            <498 IRQ_TYPE_LEVEL_HIGH>,
+                            <499 IRQ_TYPE_LEVEL_HIGH>,
+                            <500 IRQ_TYPE_LEVEL_HIGH>,
+                            <501 IRQ_TYPE_LEVEL_HIGH>,
+                            <502 IRQ_TYPE_LEVEL_HIGH>,
+                            <503 IRQ_TYPE_LEVEL_HIGH>,
+                            <504 IRQ_TYPE_LEVEL_HIGH>,
+                            <505 IRQ_TYPE_LEVEL_HIGH>,
+                            <506 IRQ_TYPE_LEVEL_HIGH>,
+                            <507 IRQ_TYPE_LEVEL_HIGH>,
+                            <57 IRQ_TYPE_LEVEL_HIGH>,
+                            <66 IRQ_TYPE_EDGE_RISING>,
+                            <67 IRQ_TYPE_EDGE_RISING>,
+                            <68 IRQ_TYPE_EDGE_RISING>,
+                            <69 IRQ_TYPE_EDGE_RISING>,
+                            <70 IRQ_TYPE_EDGE_RISING>,
+                            <71 IRQ_TYPE_EDGE_RISING>;
+               interrupt-names = "nmi",
+                                 "irq0", "irq1", "irq2", "irq3",
+                                 "irq4", "irq5", "irq6", "irq7",
+                                 "tint0", "tint1", "tint2", "tint3",
+                                 "tint4", "tint5", "tint6", "tint7",
+                                 "tint8", "tint9", "tint10", "tint11",
+                                 "tint12", "tint13", "tint14", "tint15",
+                                 "tint16", "tint17", "tint18", "tint19",
+                                 "tint20", "tint21", "tint22", "tint23",
+                                 "tint24", "tint25", "tint26", "tint27",
+                                 "tint28", "tint29", "tint30", "tint31",
+                                 "bus-err", "ec7tie1-0", "ec7tie2-0",
+                                 "ec7tiovf-0", "ec7tie1-1", "ec7tie2-1",
+                                 "ec7tiovf-1";
+               clocks = <&cpg CPG_MOD R9A07G043_IAX45_CLK>,
+                        <&cpg CPG_MOD R9A07G043_IAX45_PCLK>;
+               clock-names = "clk", "pclk";
+               power-domains = <&cpg>;
+               resets = <&cpg R9A07G043_IAX45_RESETN>;
+       };
+
        plic: interrupt-controller@12c00000 {
                compatible = "renesas,r9a07g043-plic", "andestech,nceplic100";
                #interrupt-cells = <2>;
index 433ab5c..5e80824 100644 (file)
@@ -6,19 +6,3 @@
  */
 
 #include <arm64/renesas/rzg2ul-smarc-som.dtsi>
-
-#if (!SW_ET0_EN_N)
-&eth0 {
-       phy0: ethernet-phy@7 {
-               /delete-property/ interrupt-parent;
-               /delete-property/ interrupts;
-       };
-};
-#endif
-
-&eth1 {
-       phy1: ethernet-phy@7 {
-               /delete-property/ interrupt-parent;
-               /delete-property/ interrupts;
-       };
-};
index 3af9e34..cd01358 100644 (file)
                stdout-path = "serial0:115200n8";
        };
 
-       memory@80000000 {
-               device_type = "memory";
-               reg = <0x80000000 0x3f40000>;
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               coprocessor_rtos: region@83f40000 {
+                       reg = <0x83f40000 0xc0000>;
+                       no-map;
+               };
        };
 };
 
        clock-frequency = <25000000>;
 };
 
+&sdhci0 {
+       status = "okay";
+       bus-width = <4>;
+       no-1-8-v;
+       no-mmc;
+       no-sdio;
+};
+
 &uart0 {
        status = "okay";
 };
index 165e9e3..ec95309 100644 (file)
@@ -7,6 +7,11 @@
 
 / {
        compatible = "sophgo,cv1800b";
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x4000000>;
+       };
 };
 
 &plic {
@@ -16,3 +21,7 @@
 &clint {
        compatible = "sophgo,cv1800b-clint", "thead,c900-clint";
 };
+
+&clk {
+       compatible = "sophgo,cv1800-clk";
+};
index 3e7a942..7fa4c1e 100644 (file)
@@ -22,3 +22,7 @@
 &clint {
        compatible = "sophgo,cv1812h-clint", "thead,c900-clint";
 };
+
+&clk {
+       compatible = "sophgo,cv1810-clk";
+};
index 2d6f4a4..891932a 100644 (file)
@@ -4,6 +4,8 @@
  * Copyright (C) 2023 Inochi Amaoto <inochiama@outlook.com>
  */
 
+#include <dt-bindings/clock/sophgo,cv1800.h>
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 
 / {
                dma-noncoherent;
                ranges;
 
+               clk: clock-controller@3002000 {
+                       reg = <0x03002000 0x1000>;
+                       clocks = <&osc>;
+                       #clock-cells = <1>;
+               };
+
                gpio0: gpio@3020000 {
                        compatible = "snps,dw-apb-gpio";
                        reg = <0x3020000 0x1000>;
                        };
                };
 
+               i2c0: i2c@4000000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04000000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C0>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <49 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c1: i2c@4010000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04010000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C1>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c2: i2c@4020000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04020000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C2>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c3: i2c@4030000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04030000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C3>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <52 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               i2c4: i2c@4040000 {
+                       compatible = "snps,designware-i2c";
+                       reg = <0x04040000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_I2C>, <&clk CLK_APB_I2C4>;
+                       clock-names = "ref", "pclk";
+                       interrupts = <53 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                uart0: serial@4140000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04140000 0x100>;
                        interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART0>, <&clk CLK_APB_UART0>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04150000 0x100>;
                        interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART1>, <&clk CLK_APB_UART1>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04160000 0x100>;
                        interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART2>, <&clk CLK_APB_UART2>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                        compatible = "snps,dw-apb-uart";
                        reg = <0x04170000 0x100>;
                        interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART3>, <&clk CLK_APB_UART3>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                };
 
+               spi0: spi@4180000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x04180000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI0>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi1: spi@4190000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x04190000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI1>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <55 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi2: spi@41a0000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x041a0000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI2>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <56 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
+               spi3: spi@41b0000 {
+                       compatible = "snps,dw-apb-ssi";
+                       reg = <0x041b0000 0x10000>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       clocks = <&clk CLK_SPI>, <&clk CLK_APB_SPI3>;
+                       clock-names = "ssi_clk", "pclk";
+                       interrupts = <57 IRQ_TYPE_LEVEL_HIGH>;
+                       status = "disabled";
+               };
+
                uart4: serial@41c0000 {
                        compatible = "snps,dw-apb-uart";
                        reg = <0x041c0000 0x100>;
                        interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
-                       clocks = <&osc>;
+                       clocks = <&clk CLK_UART4>, <&clk CLK_APB_UART4>;
+                       clock-names = "baudclk", "apb_pclk";
                        reg-shift = <2>;
                        reg-io-width = <4>;
                        status = "disabled";
                };
 
+               sdhci0: mmc@4310000 {
+                       compatible = "sophgo,cv1800b-dwcmshc";
+                       reg = <0x4310000 0x1000>;
+                       interrupts = <36 IRQ_TYPE_LEVEL_HIGH>;
+                       clocks = <&clk CLK_AXI4_SD0>,
+                                <&clk CLK_SD0>;
+                       clock-names = "core", "bus";
+                       status = "disabled";
+               };
+
                plic: interrupt-controller@70000000 {
                        reg = <0x70000000 0x4000000>;
                        interrupts-extended = <&cpu0_intc 11>, <&cpu0_intc 9>;
index 322aada..ac34876 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/dma-mapping.h>
 #include <linux/kref.h>
 #include <linux/mailbox_client.h>
+#include <linux/mailbox_controller.h>
 #include <linux/module.h>
 #include <linux/of.h>
 #include <linux/of_platform.h>
@@ -97,8 +98,8 @@ int rpi_firmware_property_list(struct rpi_firmware *fw,
        if (size & 3)
                return -EINVAL;
 
-       buf = dma_alloc_coherent(fw->cl.dev, PAGE_ALIGN(size), &bus_addr,
-                                GFP_ATOMIC);
+       buf = dma_alloc_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size),
+                                &bus_addr, GFP_ATOMIC);
        if (!buf)
                return -ENOMEM;
 
@@ -126,7 +127,7 @@ int rpi_firmware_property_list(struct rpi_firmware *fw,
                ret = -EINVAL;
        }
 
-       dma_free_coherent(fw->cl.dev, PAGE_ALIGN(size), buf, bus_addr);
+       dma_free_coherent(fw->chan->mbox->dev, PAGE_ALIGN(size), buf, bus_addr);
 
        return ret;
 }
index 3dac357..442f9e9 100644 (file)
 #define CLK_APM_PLL_DIV4_APM                           70
 #define CLK_APM_PLL_DIV16_APM                          71
 
+/* CMU_HSI0 */
+#define CLK_FOUT_USB_PLL                                       1
+#define CLK_MOUT_PLL_USB                                       2
+#define CLK_MOUT_HSI0_ALT_USER                                 3
+#define CLK_MOUT_HSI0_BUS_USER                                 4
+#define CLK_MOUT_HSI0_DPGTC_USER                               5
+#define CLK_MOUT_HSI0_TCXO_USER                                        6
+#define CLK_MOUT_HSI0_USB20_USER                               7
+#define CLK_MOUT_HSI0_USB31DRD_USER                            8
+#define CLK_MOUT_HSI0_USBDPDBG_USER                            9
+#define CLK_MOUT_HSI0_BUS                                      10
+#define CLK_MOUT_HSI0_USB20_REF                                        11
+#define CLK_MOUT_HSI0_USB31DRD                                 12
+#define CLK_DOUT_HSI0_USB31DRD                                 13
+#define CLK_GOUT_HSI0_PCLK                                     14
+#define CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_SUSPEND_CLK_26       15
+#define CLK_GOUT_HSI0_CLK_HSI0_ALT                             16
+#define CLK_GOUT_HSI0_DP_LINK_I_DP_GTC_CLK                     17
+#define CLK_GOUT_HSI0_DP_LINK_I_PCLK                           18
+#define CLK_GOUT_HSI0_D_TZPC_HSI0_PCLK                         19
+#define CLK_GOUT_HSI0_ETR_MIU_I_ACLK                           20
+#define CLK_GOUT_HSI0_ETR_MIU_I_PCLK                           21
+#define CLK_GOUT_HSI0_GPC_HSI0_PCLK                            22
+#define CLK_GOUT_HSI0_LHM_AXI_G_ETR_HSI0_I_CLK                 23
+#define CLK_GOUT_HSI0_LHM_AXI_P_AOCHSI0_I_CLK                  24
+#define CLK_GOUT_HSI0_LHM_AXI_P_HSI0_I_CLK                     25
+#define CLK_GOUT_HSI0_LHS_ACEL_D_HSI0_I_CLK                    26
+#define CLK_GOUT_HSI0_LHS_AXI_D_HSI0AOC_I_CLK                  27
+#define CLK_GOUT_HSI0_PPMU_HSI0_AOC_ACLK                       28
+#define CLK_GOUT_HSI0_PPMU_HSI0_AOC_PCLK                       29
+#define CLK_GOUT_HSI0_PPMU_HSI0_BUS0_ACLK                      30
+#define CLK_GOUT_HSI0_PPMU_HSI0_BUS0_PCLK                      31
+#define CLK_GOUT_HSI0_CLK_HSI0_BUS_CLK                         32
+#define CLK_GOUT_HSI0_SSMT_USB_ACLK                            33
+#define CLK_GOUT_HSI0_SSMT_USB_PCLK                            34
+#define CLK_GOUT_HSI0_SYSMMU_USB_CLK_S2                                35
+#define CLK_GOUT_HSI0_SYSREG_HSI0_PCLK                         36
+#define CLK_GOUT_HSI0_UASC_HSI0_CTRL_ACLK                      37
+#define CLK_GOUT_HSI0_UASC_HSI0_CTRL_PCLK                      38
+#define CLK_GOUT_HSI0_UASC_HSI0_LINK_ACLK                      39
+#define CLK_GOUT_HSI0_UASC_HSI0_LINK_PCLK                      40
+#define CLK_GOUT_HSI0_USB31DRD_ACLK_PHYCTRL                    41
+#define CLK_GOUT_HSI0_USB31DRD_BUS_CLK_EARLY                   42
+#define CLK_GOUT_HSI0_USB31DRD_I_USB20_PHY_REFCLK_26           43
+#define CLK_GOUT_HSI0_USB31DRD_I_USB31DRD_REF_CLK_40           44
+#define CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_REF_SOC_PLL          45
+#define CLK_GOUT_HSI0_USB31DRD_I_USBDPPHY_SCL_APB_PCLK         46
+#define CLK_GOUT_HSI0_USB31DRD_I_USBPCS_APB_CLK                        47
+#define CLK_GOUT_HSI0_USB31DRD_USBDPPHY_I_ACLK                 48
+#define CLK_GOUT_HSI0_USB31DRD_USBDPPHY_UDBG_I_APB_PCLK                49
+#define CLK_GOUT_HSI0_XIU_D0_HSI0_ACLK                         50
+#define CLK_GOUT_HSI0_XIU_D1_HSI0_ACLK                         51
+#define CLK_GOUT_HSI0_XIU_P_HSI0_ACLK                          52
+
+/* CMU_HSI2 */
+#define CLK_MOUT_HSI2_BUS_USER                                         1
+#define CLK_MOUT_HSI2_MMC_CARD_USER                                    2
+#define CLK_MOUT_HSI2_PCIE_USER                                                3
+#define CLK_MOUT_HSI2_UFS_EMBD_USER                                    4
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_PHY_REFCLK_IN               5
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_PHY_REFCLK_IN               6
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4A_1_ACLK                                7
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4A_1_PCLK                                8
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4B_1_ACLK                                9
+#define CLK_GOUT_HSI2_SSMT_PCIE_IA_GEN4B_1_PCLK                                10
+#define CLK_GOUT_HSI2_D_TZPC_HSI2_PCLK                                 11
+#define CLK_GOUT_HSI2_GPC_HSI2_PCLK                                    12
+#define CLK_GOUT_HSI2_GPIO_HSI2_PCLK                                   13
+#define CLK_GOUT_HSI2_HSI2_CMU_HSI2_PCLK                               14
+#define CLK_GOUT_HSI2_LHM_AXI_P_HSI2_I_CLK                             15
+#define CLK_GOUT_HSI2_LHS_ACEL_D_HSI2_I_CLK                            16
+#define CLK_GOUT_HSI2_MMC_CARD_I_ACLK                                  17
+#define CLK_GOUT_HSI2_MMC_CARD_SDCLKIN                                 18
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_DBI_ACLK_UG                 19
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_MSTR_ACLK_UG                        20
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_SLV_ACLK_UG                 21
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_003_I_DRIVER_APB_CLK            22
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_DBI_ACLK_UG                 23
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_MSTR_ACLK_UG                        24
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_SLV_ACLK_UG                 25
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCIE_004_I_DRIVER_APB_CLK            26
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCS_PMA_PHY_UDBG_I_APB_PCLK          27
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCS_PMA_PIPE_PAL_PCIE_I_APB_PCLK     28
+#define CLK_GOUT_HSI2_PCIE_GEN4_1_PCS_PMA_PCIEPHY210X2_QCH_I_APB_PCLK  29
+#define CLK_GOUT_HSI2_PCIE_IA_GEN4A_1_I_CLK                            30
+#define CLK_GOUT_HSI2_PCIE_IA_GEN4B_1_I_CLK                            31
+#define CLK_GOUT_HSI2_PPMU_HSI2_ACLK                                   32
+#define CLK_GOUT_HSI2_PPMU_HSI2_PCLK                                   33
+#define CLK_GOUT_HSI2_QE_MMC_CARD_HSI2_ACLK                            34
+#define CLK_GOUT_HSI2_QE_MMC_CARD_HSI2_PCLK                            35
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4A_HSI2_ACLK                          36
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4A_HSI2_PCLK                          37
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4B_HSI2_ACLK                          38
+#define CLK_GOUT_HSI2_QE_PCIE_GEN4B_HSI2_PCLK                          39
+#define CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_ACLK                            40
+#define CLK_GOUT_HSI2_QE_UFS_EMBD_HSI2_PCLK                            41
+#define CLK_GOUT_HSI2_CLK_HSI2_BUS_CLK                                 42
+#define CLK_GOUT_HSI2_CLK_HSI2_OSCCLK_CLK                              43
+#define CLK_GOUT_HSI2_SSMT_HSI2_ACLK                                   44
+#define CLK_GOUT_HSI2_SSMT_HSI2_PCLK                                   45
+#define CLK_GOUT_HSI2_SYSMMU_HSI2_CLK_S2                               46
+#define CLK_GOUT_HSI2_SYSREG_HSI2_PCLK                                 47
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_DBI_1_ACLK                       48
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_DBI_1_PCLK                       49
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_SLV_1_ACLK                       50
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4A_SLV_1_PCLK                       51
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_DBI_1_ACLK                       52
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_DBI_1_PCLK                       53
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_SLV_1_ACLK                       54
+#define CLK_GOUT_HSI2_UASC_PCIE_GEN4B_SLV_1_PCLK                       55
+#define CLK_GOUT_HSI2_UFS_EMBD_I_ACLK                                  56
+#define CLK_GOUT_HSI2_UFS_EMBD_I_CLK_UNIPRO                            57
+#define CLK_GOUT_HSI2_UFS_EMBD_I_FMP_CLK                               58
+#define CLK_GOUT_HSI2_XIU_D_HSI2_ACLK                                  59
+#define CLK_GOUT_HSI2_XIU_P_HSI2_ACLK                                  60
+
 /* CMU_MISC */
 #define CLK_MOUT_MISC_BUS_USER                         1
 #define CLK_MOUT_MISC_SSS_USER                         2
index 1ec4827..655440a 100644 (file)
 #define R8A73A4_CLK_ZS         14
 #define R8A73A4_CLK_HP         15
 
+/* MSTP1 */
+#define R8A73A4_CLK_TMU0       25
+#define R8A73A4_CLK_TMU3       21
+
 /* MSTP2 */
 #define R8A73A4_CLK_DMAC       18
 #define R8A73A4_CLK_SCIFB3     17